Spring Boot前后端分离项目配置SSL证书——HTTPS

网站添加免费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就会出现小绿锁。

你可能感兴趣的:(课程笔记,spring,boot,nginx,https,java,ssl)