让我们加密,Apache2 – 正确编辑虚拟主机
当有example.com.conf
和example.com-le-ssl.conf
时,编辑/etc/apache2/sites-enabled
的正确方法是什么?
在更改内容时我应该编辑这两个文件吗? 或者只有一个,然后以某种方式强制certbot-auto
来修复它?
我不确定你问题的正确答案是什么,但我建议你进行以下简化:
1.强制所有用户使用HTTPS。 HTTP VirtualHost的定义应如下所示:
ServerName example.com # Redirect Requests to SSL Redirect permanent / https://example.com/ ErrorLog ${APACHE_LOG_DIR}/example.com.error.log CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
这样,您只需要维护HTTPS VirtualHost的配置。
2.只要生成“Let’s Encrypt”,ssl证书文件就会手动将它们描述为HTTP S VirtualHost的定义:
ServerName example.com ServerAdmin admin@example.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem ErrorLog ${APACHE_LOG_DIR}/example.com.error.log CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined DocumentRoot /var/www/html # etc... # etc...
3.将两个VirtualHost的定义插入到单个配置文件中:
# etc... # etc...
该文件可以是/etc/apache2/sites-available/example.com.conf
。
4.不要忘记a2dissite
不必要的VirtualHosts(分别是a2ensite
必要的)并重启Apache。
5.例如,每周编辑root的crontab并添加一个尝试续订证书的作业。 输入sudo crontab -e
并在底部添加以下行:
0 3 * * 0 /usr/bin/letsencrypt renew >> /var/log/letsencrypt-renew.week-$(date +%W).log 2>&1
而已。