web-dev-qa-db-ja.com

Let's Encrypt、Apache2-仮想ホストを適切に編集する

/etc/Apache2/sites-enabledexample.com.confがあるときにexample.com-le-ssl.confを編集する適切な方法は何ですか?

何かを変更するときに両方のファイルを編集する必要がありますか?または、たった1つだけでcertbot-autoを強制的に修正しますか?

3
Ondrej Vrabel

あなたの質問の正解はわかりませんが、次の簡略化をお勧めします。

1。すべてのユーザーにHTTPSの使用を強制します。 HTTP VirtualHostの定義は次のようになります。

<VirtualHost *:80>

        ServerName example.com

        # Redirect Requests to HTTPS
        Redirect permanent "/" "https://example.com/"

        ErrorLog ${Apache_LOG_DIR}/example.com.error.log
        CustomLog ${Apache_LOG_DIR}/example.com.access.log combined

</VirtualHost>

この方法では、HTTPS VirtualHostの構成のみを維持する必要があります。

2。すぐに generate SSL証明書ファイルを「Let's Encrypt」し、それらをHTTPSVirtualHost:

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>

        ServerName example.com
        ServerAdmin [email protected]            

        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    
        <Directory /var/www/html>
              # etc...
        </Directory>

        # etc...

    </VirtualHost>
</IfModule>

3。両方のVirtualHostsの定義を単一の構成ファイルに挿入します。

<VirtualHost *:80>
        # etc...
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        # etc...
    </VirtualHost>
</IfModule>

このファイルは/etc/Apache2/sites-available/example.com.confである可能性があります。

4。a2dissite不要なVirtualHosts(それぞれa2ensite必要なVirtualHost)を忘れずにApacheを再起動してください。

5。ルートのcrontabを編集し、たとえば毎週証明書を更新しようとするジョブを追加します。 Sudo crontab -eと入力し、この行を下部に追加します。

0 3 * * 0 /usr/bin/letsencrypt renew  >> /var/log/letsencrypt-renew.week-$(date +%W).log 2>&1

それでおしまい。

3
pa4080