快速使用Let's Encrypt开启我的网站的https

背景

为何要使用https?nginx

  • https能够有效避免无良运营商的DNS劫持,能够显著提高网站逼格。
  • 使用https已是大势所趋,人心所向,iOS甚至强制要求开发者使用https。

为何要使用Let's Encrypt?算法

  • 而对于我的开发者而言,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证书”**按钮便可安全

1.png

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

  • 证书品牌只能选择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 地址来验证您是否有改域名的全部权。所以,您须要下载给顶的验证文件,并上传到您的服务器。阿里云

  • CSR生成选择浏览器生成。通常的浏览器都支持Web Cryptography,直接使用默认的浏览器生成最方便。

下图即是个人填写,填好以后点击**“点击生成”**按钮。 spa

2.png

3.进行DNS验证

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

3.png
3.2 这时只须要去域名解析控制台添加一条TXT的解析记录便可。个人域名在阿里云,所以解析详情以下图所示:
3-1.png
完成解析后,点击3.1中的**“点击验证”**按钮

4.下载证书

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

4.png

配置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下的,如此便保证了兼容性。

5.png

维护

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

6.png

参考文章

Nginx如何配置证书

RSA与ECC的选择

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

相关文章
相关标签/搜索