在Ubuntu 16.04上为Apache主机配置Let’s Encrypt SSL证书
通过使用Let's Encrypt for SSL,您将可以免费加密网站的交易/数据。以下教程将介绍在Ubuntu 16.04上安装Let's Encrypt的客户端并申请、配置SSL证书的整个过程。
在本指南结束时,您将能够创建Let's Encrypt SSL证书并将其应用在您的Apache Web服务器上。
步骤1:环境要求
Let’s Encrypt的服务通过专用客户端使用。您可以从服务器创建SSL证书,无需人工干预。Let's Encrypt客户端软件的安装需要LAMP堆栈。如果您还没有,请参阅教程如何在Ubuntu上安装Apache,MySQL和PHP。
在Vultr SSD云服务器上安装Apache Web服务器后,即可安装Let's Encrypt。下面命令将把客户端下载到/opt/letsencrypt
:
apt-get install git
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
第2步:生成Let's Encrypt SSL证书
您的SSL证书可以通过以下命令自动生成,这个过程中Let’s Encrypt客户端会设置一个'隐藏'网络服务器,以验证你对域名的所有权。
./letsencrypt-auto --apache -d yourubuntuserver.example
为多个域创建SSL证书甚至更简单:只需添加多个-d
指定即可。
./letsencrypt-auto --apache -d yourubuntuserver.example -d mysslcertificate.example
./letsencrypt-auto --apache -d yourubuntuserver.example -d mysslcertificate.example -d anotherwebsite.example
您还可以为您的www
子域生成Let's Encrypt SSL证书:
./letsencrypt-auto --apache -d yourubuntuserver.example -d mysslcertificate.example -d anotherwebsite.example -d www.yourubuntuserver.example -d www.mysslcertificate.example -d www.anotherwebsite.example
第3步:强制SSL
生成SSL证书后,你可以将对网站的http请求重定向到https,即受SSL保护的版本。这可以通过配置.htaccess
实现,在.htaccess
添加:
RewriteEngine On
RewriteCond % 80
RewriteRule ^(.*)$ https://yourubuntuserver.example/$1 [R,L]
如果需要,你还可以将对未加密的www子域的访问也重定向到SSL版本:
RewriteEngine On
RewriteCond % 80
RewriteRule ^(.*)$ https://www.yourubuntuserver.example/$1 [R,L]
第4步:自动更新Let’s Encrypt证书
Let’s Encrypt是一个免费的证书颁发机构(CA),默认情况下证书的有效期不超过90天。因此,如果你管理了很多Let's Encrypt SSL证书,手动更新这些都是非常不方便的。Let's Encrypt提供了一种实用程序,可以在您选择的时间尝试自动续订所有证书。Vultr建议在晚上这样做,这可以降低云服务器的负担。
该过程的自动化通过cron作业完成。
crontab -e
将以下cronjob追加到文件的底部:
15 5 * * 5 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
我们刚刚创建的cron作业将在每周五凌晨5:15更新SSL证书,方法是运行以下脚本: /opt/letsencrypt/letsencrypt-auto renew
。
恭喜!Ubuntu 16.04已在使用完全免费的Let's Encrypt的访问,且SSL证书将自行更新。如果您想在单个Vultr云服务器上使用更多的SSL证书,只需按照步骤#2为每个想要使用SSL保护的域申请并配置证书。
感谢您阅读Let's Encrypt指南,如果您有任何疑问,请不要犹豫,参阅官方入门指南。