私はApache VirtualHostを使用して単一のIPアドレスで2500のパブリックドメイン(例:www.example.com、example.com、www.example.net、example.net)を実行しています。
これらすべてのドメインに対してLetsEncryptを設定したいと思います。推奨されるアプローチは何ですか?これを行うための自動化されたツールはありますか?
解決策は次のとおりです。
- 動作することが証明されている(推測ではない)
- 十分
- 単一IPで動作
私のセクションのアクティブな部分は<VirtualHost>
次のとおりです。
<VirtualHost *:80>
# www.sub.example.com -> sub.example.com/html/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(www\.)?(.*)
RewriteRule ^/(.*)$ /home/hotels/%2/html/$1
</VirtualHost>
答え1
まず、単一のIPアドレスで複数のSSL証明書をサポートするには、Apache v2.2.12
後でSNIを使用する必要があります。OpenSSL v0.9.8j
続行する前に、サーバーを確認してApache Webサーバーのバージョンを確認してください。お使いのコンピュータがこのバージョン以上をサポートしていない場合は、アップグレードする必要があります。
Digicertには素晴らしい記事があります。Apacheで1つのIPアドレスで複数のSSL証明書を使用する
前述のように、ドメインごとに別々の仮想ホストを作成する必要があります。各仮想ホストには独自のSSL証明書構成があります。暗号化しようワイルドカードまたはマルチサーバー仕様を使用して、ドメインごとに1つのSSL証明書を生成できます。certbot
Digital Oceanに記事があります。Let's Encrypt 証明書を設定する方法certbot
これにはUbuntuでのインストールも含まれます。サーバーがUbuntuでない場合certbotのインストール手順。また、以下が必要な場合があります。文書を暗号化しよう
次の手順に従って、certbotを使用して各ドメインのSSL証明書を生成できます。
certbot --apache -d example.com -d www.example.com
certbot --apache -d example.net -d www.example.net
各コマンドは異なるドメインに適用されますが、各ドメインは複数のホスト名を持つことができます。
Apache 構成で各ドメインの仮想ホストを作成します。
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/site
SSLEngine on
SSLCertificateFile /path/to/www_example_com.crt
SSLCertificateKeyFile /path/to/www_example_com.key
SSLCertificateChainFile /path/to/LetsEncrypt.ca
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.net
ServerAlias example.net
DocumentRoot /var/www/site2
SSLEngine on
SSLCertificateFile /path/to/www_example_net.crt
SSLCertificateKeyFile /path/to/www_example_net.key
SSLCertificateChainFile /path/to/LetsEncrypt.ca
</VirtualHost>
受信した証明書の種類とApacheのバージョンによっては、実際<VirtualHost 192.168.1.3:443>
のIPアドレスを指定する必要があります。<VirtualHost *:443>
<VirtualHost *:80>
SSL以外の着信トラフィックをサポートするには、ポート80仮想ホストをそのままにしてください。 SSLをサポートするには、最大2500の仮想ホストを作成する必要があります。コミットする前に1つまたは2つをテストしてください。
Apache SSLモジュールを有効にすることを忘れないでください
a2enmod ssl
答え2
2,500人の<VirtualHost>
視線を維持しないでくださいhttps://github.com/varnish/hitch/blob/master/docs/vhosts.md
証明書を次の場所に配置してください/home/hotels/*/certs/
。
./hitch --backend=localhost:80 \
--frontend=[*]:443 \
/home/hotels/*/certs/*.pem
(検証されていません)。