快速使用Let's Encrypt开启个人网站的http

2018-01-18  本文已影响520人  d394af621d4c

背景

为什么要使用https?

为什么要使用Let's Encrypt?

本文将记录蓝眼博客 (https://blog.eyeblue.cn) 搭建https的整个过程。网上有很多使用let's encrypt代码生成证书,或者使用Certbot来生成证书,但是笔者觉得都没有直接借助 https://freessl.org/ 来生成证书方便快捷。

获取证书

1.填写域名

打开网站 https://freessl.org/ 填写自己的域名,你将看到下图。这里我们填入 blog.eyeblue.cn,同时在下方勾选 Let's Encrypt,然后点击“创建免费的SSL证书”按钮即可

2.填写邮箱,选择证书类型,验证类型和CSR生成方式

(1) RSA签名算法适合于:Verify操作频度高,而Sign操作频度低的应用场景。比如,分布式系统中基于capability的访问控制就是这样的一种场景。
(2) ECDSA签名算法适合于:Sign和Verify操作频度相当的应用场景。比如,点对点的安全信道建立。

其实验证类型用来确定你是否是这个域名的所有者,确认的方式有两种:
1.DNS。 CA(Certificate Authority 数字证书认证机构)将通过查询 DNS 的 TXT 记录来确定您对该域名的所有权,因此需要在域名管理平台将生成的 TXT 记录名与记录值添加到该域名下。
2.文件。CA 将通过访问特定 URL 地址来验证您是否有改域名的所有权。因此,您需要下载给顶的验证文件,并上传到您的服务器。

下图便是我的填写,填好之后点击“点击生成”按钮。

3.进行DNS验证

3.1 在第2步中点击按钮后,会弹出下图内容:


3.png

3.2 这时只需要去域名解析控制台添加一条TXT的解析记录即可。我的域名在阿里云,因此解析详情如下图所示:


完成解析后,点击3.1中的“点击验证”按钮

4.下载证书

在点击第3步的按钮后,会弹出证书文件下载的按钮,此时点击“下载证书”即可获得证书文件full_chain.pem和私钥文件private.key

配置nginx

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;
}

修改了配置文件后记得

service nginx restart

验证

打开网页https://blog.eyeblue.cn,即可看到地址栏中绿色的小锁,证明https已经成功开启。即时你输入http://blog.eyeblue.cn也会自动转跳到https下的,如此便保证了兼容性。

维护

Let's Encrypt证书的有效期只有三个月,这就需要我们每隔一段时间就去更新一下证书,好在https://freessl.org/可以帮我们管理证书,注册登录之后便可以看到我们的证书管理界面如下:

参考文章

Nginx如何配置证书

RSA与ECC的选择

原文发表于蓝眼博客:https://blog.eyeblue.cn/home/article/9f580b3f-5679-4a9d-be6f-4d9f0dd417af

上一篇 下一篇

猜你喜欢

热点阅读