在项目开发过程中,开发环境是内网环境,安全性要求低,所以通常用HTTP请求访问后端服务器。但是生产环境下,由于是公网环境,世界上的任何地方都能访问,所以安全性要求比较高,通用需要用HTTPS访问,那么如何将HTTP请求升级为HTTPS呢?仅需4步即可。
1.数字证书下载
可以选择阿里云、腾讯云、华为云或者其他证书,此处用腾讯云数字证书为例。
(1)登录腾讯云控制台,选择SSL证书申请,并按照要求,填写正确的域名

(2)申请完证书,等待签发完之后,选择对应的证书下载

2.openssl验证
(1)首先查看对应证书的部署说明,以nginx部署证书为例,重点查看支持的SSL协议,如下图所示:说明openssl需要支持TLSv1.2和TSLv1.3

(2)登录nginx部署的linux服务器,输入命令
openssl s_client -help 2>&1 | awk '/-(ssl|tls)[0-9]/{print $1}'
如下图所示:说明支持tls1,tls1.1,tsl1.2,tls1.3
(ps:如果不支持,需要编译openssl)

3.nginx验证
登录服务器,查看nginx是否支持https,找到nginx的安装目录,输入命令 -V,查看nginx版本信息
(ps:如果nginx不支持,需要编译或者升级nginx)
4.配置数字证书
以nginx支持单域名配置为例(更进阶的有多域名配置、单域名多端口配置等)
(1)直接将证书文件上传到nginx的安装目中,如下图所示

(2)修改nginx的配置文件nginx.conf,保存后重启
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name lms-admin.dev.xhguo.cn;
#请填写证书文件的相对路径或绝对路径
ssl_certificate lms-admin.dev.xhguo.cn_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key lms-admin.dev.xhguo.cn.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /home/sf/nginx/admin-front;
try_files $uri $uri/ /index.html;
if ($request_filename ~* ^.*?\.(html)$) {
add_header Cache-Control "no-cache, no-store";
}
}
}
(3)输入域名地址 https://lms-admin.dev.xhguo.cn/login/index,可以看到能够进行https访问,并且有个锁的标志,说明配置成功


