1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 申请SSL证书 Nginx和SpringBoot配置阿里云SSL证书解决HTTP HTTPS及不生效 打包报错详细教程

申请SSL证书 Nginx和SpringBoot配置阿里云SSL证书解决HTTP HTTPS及不生效 打包报错详细教程

时间:2021-07-03 19:41:56

相关推荐

 申请SSL证书 Nginx和SpringBoot配置阿里云SSL证书解决HTTP HTTPS及不生效 打包报错详细教程

申请SSL证书、Nginx和SpringBoot配置阿里云SSL证书解决HTTP HTTPS及不生效、打包报错详细教程

目录1. 获取SSL证书文件1.1 购买SSL证书1.2创建证书2. Nginx配置SSL2.1 开始Nginx配置2.2 Nginx.conf配置2.3 添加ECS安全组3. 开始配置SpringBoot SSL证书3.1 下载证书3.2 配置YML文件3.3 更改pom.xml3.4 更改入口文件3.5 重新maven install4. 问题

目录

1. 获取SSL证书文件

这里使用阿里云申请免费SSL证书为例。

1.1 购买SSL证书

首先进入 申请链接.

0元购买后,进入 SSL证书管理控制台.

1.2创建证书

如下图步骤 1到4,创建证书,填写申请个人内容,其他默认即可,注意网址部分需要区分,例如 、 、可以分别申请证书。

免费SSL可以签发20个证书,对应不同的域名,有效期一年。

填写申请后,需要审核几分钟,回到SSL证书管理控制台. 可以看到已经申请成功的证书列表。

2. Nginx配置SSL

2.1 开始Nginx配置

如果使用的是阿里云ESC,系统会自动配置域名规则。证书下载选择Nginx。

下载文件解压后有两个文件,分别是xxx.key和xxx.pem文件。

找到nginx的默认目录/url/local/nginx,找不到可以执行以下命令尝试查找

find / -name nginx

👆 查找nginx目录命令

ps -ef | grep nginx

👆 查看nginx端口命令,可以看到nginx目录

如果没有可以选择其他目录,最好是和nginx.conf文件同路径下。

find / -name nginx.conf

👆 查找nginx配置文件命令(如果找不到nginx配置文件,那后续无法操作,请重新安装、配置。)

2.2 Nginx.conf配置

创建cert文件夹,将上述两个SSL证书文件放入此目录内。更改nginx.conf配置文件内容,添加server。

server {listen 443 ssl;# 配置HTTPS的默认访问端口为443。# 如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。# 如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。server_name ;# 更换为你配置的域名root /xxx;# 需要将 /xxx更换为你的web目录index index.html index.htm;ssl_certificate /home/cert/xxx.pem; # 需要将 /home/cert/xxx.pem替换成已上传的证书文件的名称。ssl_certificate_key /home/cert/xxx.key; # 需要将 /home/cert/xxx.key替换成已上传的证书密钥文件的名称和所在目录。ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;# 表示使用的加密套件的类型。ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。ssl_prefer_server_ciphers on;# ↓开启GZIP ,可以不开启。gzip on;gzip_buffers 32 4K;gzip_comp_level 6;gzip_min_length 100;gzip_types application/javascript text/css text/xml;gzip_disable "MSIE [1-6]\.";gzip_vary on;# ↑开启GZIP ,可以不开启。location / {root /xxx;# 需要将 /xxx更换为你的web目录index index.html index.htm;# ↓ 解决刷新页面变成404问题的代码,个性化404界面,可以不设置try_files $uri $uri/ /index.html; }# ↓可以不设置location /api/ {proxy_pass https://127.0.0.1:8080;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /xxx;}# ↑可以不设置}

更改配置完成后,执行如下命令,重启nginx

nginx -s reload

如果有报错,请检查nginx.conf。

2.3 添加ECS安全组

然后打开 阿里云ECS控制台.,进入你的实例,配置安全组,开放443端口访问。

至此Nginx配置SSL证书结束,访问你的http://你的域名,查看上方是否出现锁的标志。如果出现“不安全”,需要配查是否使用CDN服务器、代码中是否访问了旧的http连接。

3. 开始配置SpringBoot SSL证书

3.1 下载证书

3.2 配置YML文件

解压xxx.pfx、password.txt文件到 项目\src\main\resources 目录内,复制密码文件中的字符串,然后修改配置yml文件。其他配置格式自行查找。

server:port: 443ssl:key-store: classpath:xxx.pfxkey-store-password: 密码keyStoreType: PKCS12

这里需要注意:port 和 ssl同级,其他教程port是ssl的父级,我这边编译出错,排查后改为同级编译成功。

3.3 更改pom.xml

<build><plugins><!--添加--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.1.0</version></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

3.4 更改入口文件

import org.springframework.beans.factory.annotation.Value;@Value("${server.port}") //这里使用你的yml配置private Integer httpPort;public static void main(String[] args) {SpringApplication.run(xxx.class, args);}//添加@Beanpublic Connector connector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setPort(httpPort);return connector;}@Beanpublic TomcatServletWebServerFactory servletContainer() {// 对http请求添加安全性约束,将其转换为https请求TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();tomcat.addAdditionalTomcatConnectors(connector());return tomcat;}

3.5 重新maven install

4. 问题

主要介绍SpringBoot配置SSL遇到的问题,其他文章会介绍

[1]: SpringBoot错误:Unable to start ServletWebServerApplicationContext due to multiple ServletWebServerFactory beans : webServerFactory,servletContainer.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。