为何要使用https?nginx
为何要使用Let's Encrypt
?算法
Let's Encrypt
免费开源无疑是一个不错的选择。本文将记录蓝眼博客 (https://blog.eyeblue.cn) 搭建https的整个过程。网上有不少使用let's encrypt
代码生成证书,或者使用Certbot来生成证书,可是笔者以为都没有直接借助 https://freessl.org/ 来生成证书方便快捷。浏览器
打开网站 https://freessl.org/ 填写本身的域名,你将看到下图。这里咱们填入 blog.eyeblue.cn
,同时在下方勾选 Let's Encrypt
,而后点击“建立免费的SSL证书”按钮便可安全
Let's Encrypt
ECC
。这里主要是选择数字签名的算法,对于普通用户使用默认的ECC
便可。若是须要根据本身的具体情境来选择,通常有如下选择依据:(1) RSA签名算法适合于:Verify操做频度高,而Sign操做频度低的应用场景。好比,分布式系统中基于capability的访问控制就是这样的一种场景。
(2) ECDSA签名算法适合于:Sign和Verify操做频度至关的应用场景。好比,点对点的安全信道创建。
DNS
的方式。其实验证类型用来肯定你是不是这个域名的全部者,确认的方式有两种:
1.DNS。 CA(Certificate Authority 数字证书认证机构)将经过查询 DNS 的 TXT 记录来肯定您对该域名的全部权,所以须要在域名管理平台将生成的 TXT 记录名与记录值添加到该域名下。
2.文件。CA 将经过访问特定 URL 地址来验证您是否有改域名的全部权。所以,您须要下载给顶的验证文件,并上传到您的服务器。
浏览器生成
。通常的浏览器都支持Web Cryptography
,直接使用默认的浏览器生成
最方便。下图即是个人填写,填好以后点击“点击生成”按钮。服务器
3.1 在第2步中点击按钮后,会弹出下图内容:
3.2 这时只须要去域名解析控制台添加一条TXT的解析记录便可。个人域名在阿里云,所以解析详情以下图所示:
完成解析后,点击3.1中的“点击验证”按钮分布式
在点击第3步的按钮后,会弹出证书文件下载的按钮,此时点击“下载证书”便可得到证书文件full_chain.pem
和私钥文件private.key
。网站
nginx的配置以下:阿里云
server{ # 监听443端口 listen 443 ssl; # 域名,若是有多个空格隔开 server_name blog.eyeblue.cn; # 启用ssl ssl on; # 证书文件的放置路径。证书文件即经过上文《获取证书》的方式得到。 ssl_certificate /data/security/letsencrypt/blogeyebluecn/full_chain.pem; # 私钥文件的放置路径。 ssl_certificate_key /data/security/letsencrypt/blogeyebluecn/private.key; # 蓝眼博客的服务运行在端口6020 location / { proxy_pass http://127.0.0.1:6020; proxy_set_header host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass_request_headers on; client_max_body_size 8m; } } #对于经过http来访问蓝眼博客的请求,咱们默认让其跳转到https. 这样保持了http访问的兼容性。 server { listen 80; server_name blog.eyeblue.cn; rewrite ^(.*)$ https://blog.eyeblue.cn$1 permanent; }
修改了配置文件后记得spa
service nginx restart
打开网页https://blog.eyeblue.cn
,便可看到地址栏中绿色的小锁,证实https已经成功开启。即便你输入http://blog.eyeblue.cn
也会自动转跳到https
下的,如此便保证了兼容性。.net
Let's Encrypt
证书的有效期只有三个月,这就须要咱们每隔一段时间就去更新一下证书,好在https://freessl.org/
能够帮咱们管理证书,注册登陆以后即可以看到咱们的证书管理界面以下:
原文发表于蓝眼博客: https://blog.eyeblue.cn/home/...