在CentOS6,CentOS7安装 Let’sEncrypt 免费SSL安全证书

作者: wxfeng 分类: 未分类 发布时间: 2017-09-05 00:00

相对来说,个人网站建立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)模型缺陷的一个起步。

Let'sEncrypt的工作原理

看图:

ACME 解决了私钥持有者验证自己身份这一过程的自动化问题。

在CentOS6,CentOS7上安装Let's Encrypt

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

一、升级系统

  1. # yum -y update

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

  1. # yum -y install epel-release

三、下载CertBot

1、CentOS7:

  1. # yum -y install python-certbot-apache

2、CentOS6:

  1. # wget https://dl.eff.org/certbot-auto

  2. # chmod 755 certbot-auto

四、Apache下配置Let's Encrypt

执行下条命令

  1. # ./certbot-auto –apache

根据提示操作

  1. /root/.local/share/letsencrypt/lib/python2.6/sitepackages/cryptography/__init__.py:26:DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of cryptography will drop support for Python 2.6

  2. DeprecationWarning

  3. Saving debug log to /var/log/letsencrypt/letsencrypt.log

  4. Enter email address (used for urgent renewal and security notices) (Enter 'c' to

  5. cancel):输入管理员邮箱

  6.  

  7. ——————————————————————————-

  8. Please read the Terms of Service at

  9. https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree

  10. in order to register with the ACME server at

  11. https://acme-v01.api.letsencrypt.org/directory

  12. ——————————————————————————-

  13. (A)gree/(C)ancel: A

  14.  

  15. ——————————————————————————-

  16. Would you be willing to share your email address with the Electronic Frontier

  17. Foundation, a founding partner of the Let's Encrypt project and the non-profit

  18. organization that develops Certbot? We'd like to send you email about EFF and

  19. our work to encrypt the web, protect its users and defend digital rights.

  20. ——————————————————————————-

  21. (Y)es/(N)o: Y

  22.  

  23. Which names would you like to activate HTTPS for?

  24. ——————————————————————————-

  25. 1: www.xichuang.com

  26. ——————————————————————————-

  27. Select the appropriate numbers separated by commas and/or spaces, or leave input

  28. blank to select all options shown (Enter 'c' to cancel):1

  29. Obtaining a new certificate

成功后,在/etc/letsencrypt/live/www.xi-chuang.com/下生成4个证书:

  1. cert.pem ->

  2. chain.pem ->

  3. fullchain.pem ->

  4. privkey.pem ->

五、打开防火墙iptables的443端口

  1. A INPUT m state state NEW m tcp p tcp dport 443 j ACCEPT

  2. #service iptables restart

六、编辑ssl.conf

vi /etc/httpd/conf.d/ssl.conf

  1. # General setup for the virtual host, inherited from global configuration

  2. DocumentRoot "/var/www/html/xi-chuang.com"

  3. ServerName www.xichuang.com:443

  4. .

  5. .

  6. .

  7. SSLCertificateFile /etc/letsencrypt/live/www.xichuang.com/fullchain.pem

  8. .

  9. .

  10. .

  11. SSLCertificateKeyFile /etc/letsencrypt/live/www.xichuang.com/privkey.pem

  12. .

  13. .

  14. .

service httpd restart

七、这个时候网站HTTPS已经能够访问了,试一下

最后,通过.htaccess进行301转向

  1. RewriteEngine On

  2. RewriteCond %{SERVER_PORT} 80

  3. RewriteRule ^(.*)$ https://www.xi-chuang.com/$1 [R=301,L]

  4. RewriteCond %{HTTP_HOST} !^www.xichuang.com$ [NC]

  5. RewriteRule ^(.*)$ https://www.xi-chuang.com/$1 [L,R=301]

八、大功告成

注意:Let'sEncrypt的证书有效期为90天,因此,建议使用cron作业在证书到期前一周将证书renew

执行命令:

./certbot-auto renew --force-renew

执行前需关闭apache服务器,否则会报错误信息:

Attempting to renew cert (www.bf361.com) from /etc/letsencrypt/renewal/www.bf361.com.conf produced an unexpected error: Problem binding to port 443: Could not bind to IPv4 or IPv6.. Skipping.
All renewal attempts failed. The following certs could not be renewed:

转载自:http://www.cnblogs.com/suiyuewuxin/p/7095743.html

九、附加

另配上一个nginx的配置文档:http://www.cnblogs.com/youlechang123/p/6360798.html

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注