本页主题: 在 CentOS 7 安装 Let'sEncrypt 免费SSL安全证书 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

btxd
级别: 管理员


精华: 0
发帖: 112
威望: 112 点
金币: 50065 个
贡献值: 0 点
在线时间:53(小时)
注册时间:2020-04-18
最后登录:2026-09-17

 在 CentOS 7 安装 Let'sEncrypt 免费SSL安全证书

相对来说,个人网站建立SSL是昂贵的,而且往往过程繁琐。一个标准的2048位证书费用至少150美元/年,网站除了要支付一笔昂贵的费用、重新配置Web服务器,并需要解决大量的配置错误。这让广大中小网站望而生畏。
然而,Let's Encrypt免费证书的开放,极大推进了国内 HTTPS 的进程。Let's Encrypt 真正的意义在于,它推动了 HTTPS 在小型网站和个人网站中的应用,加速全面 HTTPS 时代的到来。Let's Encrypt 的最大贡献是它的 ACME 协议,第一份全自动服务器身份验证协议,以及配套的基础设施和客户端。这是为了解决一直以来 HTTPS TLS X.509 PKI 信任模型,即证书权威(Certificate Authority, CA)模型缺陷的一个起步。

非营利组织电子前沿基金会的CertBot是一个很好的工具,我们使用它来安装Let's Encrypt

安装EPEL库,为CertBot提供最新的Python包。

# yum -y install epel-release

下载 CertBot

# yum -y install python-certbot-apache

Apache下配置Let's Encrypt

执行下条命令

# certbot certonly --email 请输入邮箱 --agree-tos --webroot -w 网站根目录 -d 域名 -d 其它域名

生成的证书会存在:/etc/letsencrypt/live/域名/ 目录下

Apache在生成证书后需要修改一下apache的配置文件 /usr/local/apache/conf/httpd.conf ,查找httpd-ssl将前面的#去掉

修改 httpd-ssl.cnf 文件,将文件的
<VirtualHost _default_:443></VirtualHost>中下面两行的证书路径改成刚才生成的证书路径。

SSLCertificateFile /etc/letsencrypt/live/域名/fullchain.pem  
SSLCertificateKeyFile /etc/letsencrypt/live/域名/privkey.pem

如果还要添加另外一个或更多域名,则需要在httpd-ssl.cnf中添加以下两行

NameVirtualHost *:443
SSLStrictSNIVHostCheck off

另外在httpd-ssl.cnf中
<VirtualHost _default_:443></VirtualHost>的下面添加以下内容。

<VirtualHost *:443>

DocumentRoot "/usr/local/www/root"     # 域名根目录
ServerName image.fouzhuo.com:443     # 域名
ServerAdmin you@example.com
# ErrorLog "/usr/local/apache2/logs/error_log"
# TransferLog "/usr/local/apache2/logs/access_log"
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/image.fouzhuo.com/fullchain.pem"     # 生成的对应域名目录下的证书文件
SSLCertificateKeyFile "/etc/letsencrypt/live/image.fouzhuo.com/privkey.pem"     # 生成的对应域名目录下的证书文件

</VirtualHost>

测试自动更新,非真正执行更新

certbot renew --dry-run

证书手动更新

certbot renew -v

查看证书过期时间

certbot certificates

添加定时任务自动更新

echo "0 0 1,8,20 * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null

上面的命令是每个月的1,8,20号零点自动检查更新证书,一般在正式过期前30天内可以更新成功。

查看定时任务

cat /etc/crontab

顶端 Posted: 2022-01-06 18:49 | [楼 主]
帖子浏览记录 版块浏览记录
四四一七九 » 电脑综合技术应用

Total 0.009002(s) query 3, Time now is:09-18 15:39, Gzip enabled 鄂ICP备2023031436号
Powered by 四四一七九 © 2020-08 44179.com Corporation