最新 Let’s Encrypt 永久免费 SSL/TLS 证书安装全过程 时间: 2018-01-13 18:04 分类: 服务器 #### 前言 之前用过其他的免费 https 证书,很多都是失效了(安装完浏览器还是提示不安全),当时是在 Tomcat 上配置证书,遇到各种坑爹问题。今天给新博客上了 `Let's Encrypt` 免费证书,感觉还是非常方便的。 #### 介绍 官方地址:[https://letsencrypt.org/][1] 如果在网上搜索有关的安装教程,大多数都是使用 `letsencrypt` 这个脚本安装,但是按照教程下去,会发现没有生成证书文件,所以,可以说这个教程已经过时了。(修正:这个脚本如果没有生成的话就再次执行一次,在搬迁网站的时候发现 certbot 也会出现这种情况,再次执行就可以了) 最新的脚本,其实打开官方网址,点击 `Get Started` 就可以找到官方的安装脚本 `certbot`,下面是安装全过程。 #### 安装 将脚本下载到本地 `# git clone https://github.com/certbot/certbot.git` 进入脚本目录 `certbot`,进行安装 `# ./certbot-auto certonly --standalone --email admin@0o0.me -d 0o0.me -d www.0o0.me` 安装完后会在 `/etc/letsencrypt/live/0o0.me/` 下生成证书文件: ![cert.jpg][2] 配置证书,这里以 `Nginx` 为例 > ssl_certificate /etc/letsencrypt/live/0o0.me/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/0o0.me/privkey.pem; 配置代码: ```nginx server { listen 443 ssl; listen [::]:80 ipv6only=on; root /usr/local/www/blog; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name 0o0.me www.0o0.me; ssl_certificate /etc/letsencrypt/live/0o0.me/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/0o0.me/privkey.pem; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.php?$query_string; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` 至此证书就配置完成了。 如果想要 `http` 强制跳转到 `https`,可以加上如下配置: ```nginx server { listen 80; server_name 0o0.me www.0o0.me; index index.php index.html index.php index.htm; return 301 https://$server_name$request_uri; location ~ / { root /usr/local/www/blog; index index.php index.html index.php index.htm; } } ``` #### Nginx 续费命令 > ./certbot-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start" #### 总结 总的来说此次证书安装还算比较成功,虽然也踩了些坑,但也没有花费过多的时间。主要就是第一次找了前面说的那个过时的脚本发现并没有生成证书文件,后来到官网找到最新的脚本顺利安装成功,最后就是配置 Nginx 证书时 listen 没加 ssl 页面报了错,通过百度一搜才知道 listen 后面要加 ssl,不知道的就搜也是一种快速学习的办法,像配置这种东西不可能自己领悟得出来的,所以该搜的时候还是要搜,不要浪费时间。 [1]: https://letsencrypt.org/ [2]: https://0o0.me/usr/uploads/2018/01/2568377963.jpg 标签: nginx