用免费的Let's Encrypt SSL证书给网站加上小绿锁
/ / 点击现在非常流行的免费 SSL 证书非 Let’s Encrypt 所有了,经过近几年的发展,Let’s Encrypt 的安装也变得非常简单,这里详细介绍一下 Let’s Encrypt 的安装和配置过程。
环境:CentOS 6 + Apache 2.2
CertBot 是一个很好的工具,我们使用它来安装 Let’s Encrypt。
一、准备
1. 为 CertBot 安装 EPEL 库
1 | yum -y install epel-release |
2. 安装 CertBot
1 | wget https://dl.eff.org/certbot-auto |
二、安装 SSL 证书
1. 安装证书
1 | ./certbot-auto --apache |
2. 按照提示操作
(如果 Python 版本低于 2.7 会提示版本过低,可以先忽略)
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):输入管理员邮箱
提示输入管理员邮箱,因为 Let’s Encrypt 的免费 SSL 证书有效期是 90 天,这个邮箱的作用就是在证书快到期之前会发邮件提醒续期。
(A)gree/(C)ancel: A
(Y)es/(N)o: Y
Which names would you like to activate HTTPS for?
选择要安装 SSL 证书的域名,多个域名可以中间空格
3. 成功后,会在/etc/letsencrypt/live/域名/下生成 4 个证书文件:
cert.pem ->
、chain.pem ->
、fullchain.pem ->
、privkey.pem ->
三、编辑 ssl.conf
1.打开/etc/httpd/conf.d/ssl.conf
,并添加以下语句
1 | <VirtualHost _default_:443> |
如有多个域名(包括子域名)如要整段继续添加,SSLCertificateFile
、SSLCertificateKeyFile
和SSLCertificateChainFile
字段不用修改,因为证书唯一。
2.在这个文件中查找Listen 443
,并把前面的#去掉。
3.查找SSLCipherSuite
把这个一行修改为
SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
4.查找SSLProtocol all
把这一行修改为SSLProtocol all -SSLv2 -SSLv3
四、重启 apache 服务:
1 | service httpd restart |
这个时候访问 https://域名/
,应该已经可以了。
五、设置自动续期任务
因为 Let’s Encrypt 的免费 SSL 证书有效期是 90 天,所以我们可以设置自动续期。先手动续期一次试一下:
1 | ./certbot-auto renew --dry-run |
然后进入 cron 定时任务编辑:
1 | crontab -e |
输入 a 进入编辑状态,然后用方向键选到新的一行,
加上规则:
1 | 0 3 1 * * /root/certbot-auto renew –renew-hook |
按“ESC”退出编辑状态,输入:wq 保存并退出。
查看一下是否存在刚才添加的定时命令:
1 | crontab -l |