3月中旬, Let’s Encrypt 终于正式发布通配符 HTTPS 证书了,赶紧去申请一个玩玩(然而我的网站暂时还不支持加SSL,只能先在VPS上试试了 /(ㄒoㄒ)/)。
1. 安装 Let’s Encrypt 客户端
系统为 Ubuntu 16.04,参照 Certbot 官网的教程,运行以下命令安装(我这里由于是用 root 用户,所以非 root 请自行加 sudo):
# apt-get update # apt-get install software-properties-common # add-apt-repository ppa:certbot/certbot # apt-get update # apt-get install python-certbot-apache
2. 获取通配符证书
先查看 certbot 的版本是否 > 0.22,否则不支持通配符证书:
# certbot --version certbot 0.22.2
自带的 –apache 模式似乎并不能处理通配符证书的情况,所以需要手动获取。
在对应的 support 页面[1]中,了解到还需要手动指定服务器,执行:
# certbot -d *.xxxx.com --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory certonly
之后按提示操作,并添加自己的域名的 TXT 记录,以通过 ACME 认证。完成后,可在 /etc/letsencrypt/live/xxxx.com/ 下看到几个 .pem 文件。
3. 在 Apache2 中配置 SSL
首先启用 SSL,Apache2 提供了一些工具,可以不用手动配置文件链接:
# a2ensite default-ssl # a2enmod ssl
修改 /etc/apache2/sites-available/default-ssl.conf :
添加一行你的域名 ServerName xxx.xxxx.com:443 证书的路径修改一下 SSLCertificateFile /etc/letsencrypt/live/xxxx.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/xxxx.com/privkey.pem
保存文件,# service apache2 restart 重启,浏览器打开 https://yourdomainxxxx.com 看一下?
4. HTTP -> HTTPS
开启 Apache2 的 rewrite:
# a2enmod rewrite
修改 apache2.conf:
# nano /etc/apache2/apache2.conf <Directory /var/www/> # 找到这里 Options Indexes FollowSymLinks AllowOverride ALL # 把它改为 ALL Require all granted </Directory> # service apache2 restart
添加 .htaccess[2]
# nano /var/www/html/.htaccess RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [L,R]
5. 更新证书
由于是手动操作获取证书的,所以自动更新的 certbot renew 不能用。更新证书的方法不太复杂:再次执行第2步的那串比较长的命令,按照操作就可以了。
相关参考
1. https://community.letsencrypt.org/t/how-to-issue-acmev2-wildcard-with-certbot-0-22-0/55657
2. https://blog.csdn.net/mgsky1/article/details/53844332
发表评论