网站添加免费SSL证书——HTTPS协议

一、SSL证书的下载


  • ​Spring Boot前后端分离​​​项目配置​​SSL证书​​​,需要申请​​两个​​​证书。前端申请​​网站主域名​​​的SSL证书,后端可以在域名管理里面新建一个​​子域名​​​。例如我的项目前端域名为:​​www.mzwhzy.com​​​,后端域名为:​​blog.mzwhzy.com​​​。一般的个人网站申请​​免费​​​的SSL证书即可。具体的申请过程可以参考:▶ 网站添加免费SSL证书——HTTPS协议
  • 先将两个域名的​​证书​​​和​​密钥​​下载下来。

二、服务端配置SSL证书


  • 避免不必要的麻烦,首先进行服务端配置
  • 在​​Nginx配置文件​​​里面加入以下内容,首先确保​​443端口​​​是打开的,上传证书和密钥。我的证书路径是:​​/etc/nginx/cer​​​,以下配置写的是​​相对路径​​。

server {
listen 80;
server_name blog.mzwhzy.com;#服务端绑定的域名
rewrite ^(.*) https://$server_name$1 permanent;#后端强制跳转https
}
#服务端SSL证书
server {
listen 443 ssl;
server_name blog.mzwhzy.com; #修改为您证书绑定的域名。
ssl_certificate cer/server.crt; #替换成您的证书文件的路径。
ssl_certificate_key cer/server.key; #替换成您的私钥文件的路径。
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5; #加密套件。
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
proxy_pass http://127.0.0.1:6060;#改为你的后端运行端口
}
}

  • 现在可以用​​https://blog.mzwhzy.com​​来测试后端接口是否配置正确

二、客户端配置SSL证书

  • 在配置证书之前首先要​​修改​​​客户端接收​​服务端请求​​​的接口,以下是我的配置,修改完成以后​​重新打包上传​​客户端。
//调用后端https接口
public HOST="https://blog.mzwhzy.com";
public WEBHOST="https://www.mzwhzy.com";

  • 客户端配置SSL证书用的是​​主域名访问​​​,所以在Nginx中加入以下配置,首先确保443端口是打开的。如果要实现​​http请求强制跳转https​​​,可以在原来的​​80端口的server​​​里面加入:​​rewrite ^(.*) https://$server_name$1 permanent;​
#客户端SSL证书
server {
listen 443 ssl;
server_name www.mzwhzy.com; #修改为您证书绑定的域名。
ssl_certificate cert/server.crt; #替换成您的证书文件的路径。
ssl_certificate_key cert/server.key; #替换成您的私钥文件的路径。
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5; #加密套件。
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
root /usr/share/nginx/html;#修改为您的客户端站点地址
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
}


  • 现在客户端可以​​https​​​进行访问,不过可能浏览器地址栏没有出现​​小绿锁​​​,甚至可能出现​​不安全​​​的提示,这个是因为你的网站内部还存在​​http的链接​​​,只要将http的链接​​全部改为https​​就会出现小绿锁。