让我们加密,Apache2 – 正确编辑虚拟主机

当有example.com.confexample.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 

而已。