本文主要记录本博客https化的全部过程。
openssl req -newkey rsa:2048 -sha256 -nodes -out u3xyz_com.csr -keyout u3xyz_com.key -subj "/C=CN/ST=GD/L=SZ/CN=u3xyz.com/emailAddress=jagus.ou@gmail.com"
云盾(安全) -> CA证书服务(数据安全) -> 购买证书
找到免费的DV证书类型,开始申请。申请完成后,补全信息。如果主机和域名使用的是阿里云,建议选择DNS验证。填完后直接提交。刷新申请,直接验证,验证成功,则会收到签发的证书。这时候我们就可以开始配置nginx了
不多说了,直接上配置结果
server {
listen 443 ssl;
server_name u3xyzhttps;
#HSTS策略,转http请求为https
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;
#证书文件
ssl_certificate cert/u3xyz_com.pem;
#私钥文件
ssl_certificate_key cert/u3xyz_com.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;
#优先采取服务器算法
ssl_prefer_server_ciphers on;
#减少点击劫持
add_header X-Frame-Options DENY;
#禁止服务器自动解析资源类型
add_header X-Content-Type-Options nosniff;
#防XSS攻擊
add_header X-Xss-Protection 1;
}
配置完成,重启nginx后,就可以在浏览器中输入网址验证https是否可以访问了。
因为Https下只能发送Https请求,所以域名下的所有资源都得支持https访问,可以通过配置nginx转发来进行支持,如:
{
location ^~ /blog/ {
alias /path/to/assets/web/;
}
}
到此,https改造就算完成了,访问页面,前面漂亮的小锁就亮起来了。
上次申请的SSL证书有效期为1年,到19年1月份就到期了,阿里云也早早地发了提醒短信。关于SSL证书续期我想补充几个点:
我在windows平台使用openssl生成csr及key文件时报错,不能生成csr文件。解决办法是加 //
,如上图。
证书签发后,配置nginx,使用新的证书文件,重启nginx即完成ssl证书替换。
发表评论: