Let's Encrypt 免费SSL证书的安装和续期

前文中我也说了,从苹果宣布所有iOS应用将强制采用ATS(App Transport Security)安全标准,也就是App的网络传输必须通过HTTPS协议传输而不是HTTP协议以后,现在大部分网站都开始动起来了,新浪也老早就给我发消息了。

Let's Encrypt 免费SSL证书的安装和续期

之前的文章中我也说了如何开启云存储的HTTPS功能,但是如果想整体网站全部HTTPS化,还是需要把服务器上的网页也全部HTTPS。所以就要我们申请一张SSL证书了。最早的时候我也介绍过StartSSL,可惜因为瞎搞被几个浏览器厂商联合封杀了。不过最近的Let's Encrypt 又出现了,而且出身清白,申请也方便。

Let's Encrypt是最近很火的一个免费SSL证书发行项目,Let's Encrypt是由ISRG提供的免费免费公益项目,自动化发行证书,但是证书只有90天的有效期。适合个人使用或者临时使用,不用再忍受自签发证书不受浏览器信赖的提示。(从军哥那直接抄来的)

军哥的LNMP 1.4自带了集成的Let's Encrypt申请,我就不班门弄斧讲如何用LNMP申请了,我要讲的是在Debian上自己自己用Let's Encrypt自带的工具申请和配置证书。工作环境是debian+apache。

SSL证书申请

本身Let's Encrypt自己也写了一套流程(https://certbot.eff.org/#debianwheezy-apache),大家可以一边参考一边看我的文章。

先下载certbot-auto工具,然后运行工具的安装依赖组件。

wget https://dl.eff.org/certbot-auto --no-check-certificate
chmod +x ./certbot-auto
./certbot-auto -n

Let's Encrypt 免费SSL证书的安装和续期

接下来运行:

./certbot-auto certonly --email admin@nicky1605.com --agree-tos --webroot -w /var/www/html -d www.nicky1605.com

如果想把根域跟www域名放在一起可以这样运行

./certbot-auto certonly --email admin@nicky1605.com --agree-tos --webroot -w /var/www/html ?-d www.nicky1605.com?-d nicky1605.com

Let's Encrypt 免费SSL证书的安装和续期

生成的证书会存在:/etc/letsencrypt/live/www.nicky1605.com/ 目录下。

SSL证书续期

证书续期也非常方便,利用crontab进行自动续期。有些Debian没有安装crontab的可以先手动安装。

apt-get install cron

以下命令分别nginx跟apache是在crontab中输入的命令,意思是每10天续期一次,90天的有效期足够了。

0 3 */10 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
0 3 */10 * * /root/certbot-auto renew --renew-hook "service apache2 restart"

SSL证书配置

LNMP或是Nginx的证书配置请参考军哥的教程(https://www.vpser.net/build/letsencrypt-certbot.html),我这里主要是说的Apache的教程,都是以我自己的网站域名为例。

首先到/etc/apache2/sites-available建立一个www.nicky1605.com.conf的配置文件,然后在配置文件中如此填写:

<VirtualHost *:80>
ServerAdmin admin@nicky1605.com
ServerName www.nicky1605.com
#ServerAlias www.nicky1605.com
DocumentRoot /var/www/html
ErrorLog /var/log/apache2/www.error.log
CustomLog /var/log/apache2/www.access.log combined
</VirtualHost>

<VirtualHost *:443>
DocumentRoot /var/www/html
ServerName www.nicky1605.com:443
ServerAdmin admin@nicky1605.com
ErrorLog "/var/log/apache2/www.error.log"
CustomLog "/var/log/apache2/www.access.log" common
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.nicky1605.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.nicky1605.com/privkey.pem
<Directory "/var/www/status">
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
</VirtualHost>

最后重启apache就可以了。

service apache2 restart

文章参考:

用 Let's Encrypt 给网站加 HTTPS 完全指南 :http://www.tuicool.com/articles/EF7NnaV

免费SSL安全证书Let's Encrypt安装使用教程(附Nginx/Apache配置):https://www.vpser.net/build/letsencrypt-free-ssl.html

免费SSL证书Let's Encrypt(certbot)安装使用教程:https://www.vpser.net/build/letsencrypt-certbot.html

记录基于Debian系统的Apache服务器多站点配置:http://blog.csdn.net/panzer9/article/details/51374128

linux学习之Crontab工具:http://www.imooc.com/article/7889

完整Debian7配置LAMP(Apache/MySQL/PHP)环境及搭建建站:http://www.laozuo.org/3423.html

网友评论1

  1. 沙发
    逗妇乳:

    试试acme.sh?纯shell实现签发

    2017-09-02 18:39 [回复]

发表评论

表情
还能输入210个字