1 背景
个人网站,或者测试网站。http请求浏览器会谈不安全问题。这里就需要做https验证。通过https验证后网站就可以安全访问,近段时间阿里云网站改版,很多小伙伴找到的博客都是之前的版本。
如果不想花钱,怎么白漂请继续往下看>>>>>
2 申请步骤
2.1 被博客介绍怎么通过阿里云申领https证书
a. 注册阿里云账号 阿里云网站
b. 搜索数字证书管理服务,见下图
c. 选择进入搜索数字证书管理界面,点击“选购证书”
d. 选择SSL证书管理,依次点击 SSL证书管理>个人测试证书>立即购买
这里的个人测试证书是免费的,支付金额为0.0元,放心点击
e. 购买界面,选择免费版本,改版后每个账号一年可以申请20次,每个证书有效期是3个月。
f. 购买完成后,进行下一步创建证书(申请证书)
第4点,输入你需要https验证的域名
g. 签发资料,根据自己实际情况填写
h. 提交申请后需要等待审核通过,才能下发证书。大概20分钟左右。
证书下发后,直接下载拿到服务器上部署
3 证书部署
3.1. 我以NGINX为例,其它部署方式可以参照界面提供的帮助文档。
nginx版本证书格式包含两个文件,后缀分别为pem、key,见下图
3.2 修改nginx配置文件nginx.conf,引入SSL证书
参考模版
server {
#HTTPS的默认访问端口443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
listen 443 ssl;
#填写证书绑定的域名
server_name <yourdomain>;
#填写证书文件绝对路径
ssl_certificate cert/<cert-file-name>.pem;
#填写证书私钥文件绝对路径
ssl_certificate_key cert/<cert-file-name>.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
3.3 修改nginx启动脚本,引入SSL路经(docker模式下)
#!bin/bash
docker run -d -p 80:80 -p 443:443 --name nginx-web \
-v /home/wise-exam:/usr/share/nginx/html \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/ssl/<cert-file-name>.pem:/etc/nginx/<cert-file-name>.pem \
-v /home/nginx/ssl/<cert-file-name>.key:/etc/nginx/<cert-file-name>.key \
nginx
3.4 验证配置是否成功
浏览器 输入 https+,是否访问正常