用 Let’s Encrypt 建立https网站

Let’s Encrypt 首页 https://letsencrypt.org/
Let’s Encrypt 提供的工具可以自动签发证书

工具使用certbot https://certbot.eff.org/#ubuntuxenial-nginx
选择Ubuntu + nginx

[code lang=”bash”]
sudo apt-get install letsencrypt
sudo letsencrypt certonly –webroot -w /var/www/example -d example.com -d www.example.com
[/code]

然后根据提示输入email,等待签发,完成后,证书文件在/etc/letsencrypt/live/example.com下面

接下来就可以配置nginx了

启用ssl,添加ssl配置

[code lang=”text”]
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
# 为了让所有浏览器识别证书的chain链,ssl_certificate项应该使用fullchain.pem,let’s Encrypt生成好了的,内容是
# $ cat cert.pem chain.pem > fullchain.pem
# 如果不使用fullchain.pem,像QQ浏览器就不会信任cert.pem证书的,也会导致使用了QQ浏览器X5内核的微信打不开公众号的https内容
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

}
[/code]

强制http跳转到https

[code lang=”text”]
server {
listen 80;
server_name example.com www.example.com;
rewrite ^ https://$http_host$request_uri? permanent;
}
[/code]

重启nginx