Ubuntu 16.04サーバーを実行していて、SSLを使用する(または使用する必要がある)Apache2で1つの仮想ホストをセットアップします。
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName my.domain.name.de
DocumentRoot /var/www/mysslsite
<Directory /var/www/mysslsite>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/mysite.ssl.error.log
CustomLog ${Apache_LOG_DIR}/mysite.ssl.access.log combined
</VirtualHost>
</IfModule>
私はではなくで標準のsites-available/default-ssl.confを有効にしました。
https://my.domain.name.de を参照できるようになり、Firefoxで証明書を購入しなかった場合に完全に正常な例外を追加するように求めています。
しかし、/ etc/Apache2/ssl /ディレクトリ内の証明書を使用するように設定されている場所が不思議でした。それを使用するように指示されている設定が見つかりません。私はいつも/ etc/sslフォルダーから何かを使用すると考えていました。
または、SSLを正しくアクティブ化できなかったのでしょうか?
一部のマニュアルによると、SSL証明書ファイルは/etc/Apache2/ssl/
の下に配置する必要がありますが、独自の構成に応じて別のフォルダーに配置できます。
サイトへのHTTPSアクセスを許可するには、SSLEngine
を有効にし、有効な SSL証明書 を指定する必要があります。
このためには、 OpenSSL コマンドラインツールを使用して独自の証明書を生成する必要があります。次に、 COMODO 、 StarSSL 、ローカルDNSプロバイダーなどのようなプロバイダーで証明書を検証する必要があります。通常、数か月間無料の証明書を提供します。この証明書の生成方法については、 14.04 および 16.04 のガイドをご覧ください。
また、ソフトウェアツール Let's Encrypt を使用できます。 はじめに暗号化しましょう ページから:
WebサイトでHTTPSを有効にするには、認証局(CA)から証明書(ファイルの一種)を取得する必要があります。 Let's EncryptはCAです。 Let's Encryptからウェブサイトのドメインの証明書を取得するには、ドメインの制御を実証する必要があります。 Let's Encryptでは、通常はWebホストで実行されるACMEプロトコルを使用するソフトウェアを使用してこれを行います。
この段階でLet's Encryptを使用することをお勧めします。それでは始めましょう。
1st-Let's Encryptのインストール:
Sudo apt install python-letsencrypt-Apache
2nd-証明書を生成します。 Apacheと互換性のあるSSL証明書を生成するには、letsencrypt --Apache
と入力するだけです。このコマンドは、対話型の対話を開始し(サイトの個人データを入力する必要があります)、既存のHTTPS.conf
ファイルに基づいてHTTP.conf
ファイルを生成します。
いくつかの追加パラメータを使用できます。たとえば、letsencrypt --Apache certonly
は上記と同じことを行いますが、HTTPS.conf
ファイルは生成しません。
また、ダイアログを回避するために必要なすべてのパラメーターを配置できます。質問で提供される情報によると、コマンドは次のようになります。
Sudo letsencrypt --Apache certonly --rsa-key-size 4096 --email [email protected] -d my.domain.name.de
最後のアプローチを選択したと仮定しましょう。このコマンドは、必要なすべての証明書ファイルを生成し、/etc/letsencrypt/archive/my.domain.name.de/
フォルダーに配置されます。また、これらのファイルはフォルダー/etc/letsencrypt/live/my.domain.name.de/
にシンボリックリンクされます。これらのシンボリックリンクは将来自動的に更新されるため、使用します。
3rd-HTTPS VirtualHostを(手動で)設定します。上記によると、構成ファイルは次のようになります。
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName my.domain.name.de
DocumentRoot /var/www/mysslsite
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/my.domain.name.de/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my.domain.name.de/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/my.domain.name.de/chain.pem
<Directory /var/www/mysslsite>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/mysite.ssl.error.log
CustomLog ${Apache_LOG_DIR}/mysite.ssl.access.log combined
</VirtualHost>
</IfModule>
4th-a2ensite
新しいVirtualHost。a2enmod ssl
の場合に備えて、Apacheを再起動します。それでおしまい。これで、サイトへのHTTPSアクセスが可能になります。
5th-証明書を将来更新します。この目的のために、ルートの Crontab を編集し、証明書をletsencrypt renew
しようとするジョブを追加できます(毎週日曜日の午前3時)。 Sudo crontab -e
と入力し、この行を下部に追加します。
0 3 * * 0 /usr/bin/letsencrypt renew >> /var/log/letsencrypt-renew.log 2>&1
ノート:
letsencrypt
/python-letsencrypt-Apache
はUbuntu 16.04以降で使用可能です。以前のバージョンでは、ほぼ同じであるcertbot
があります- buntu Manuals から。
VirtualHostがほとんどない場合、この構文を使用して証明書を生成できます(すべて一緒に)。
Sudo letsencrypt --Apache certonly --rsa-key-size 4096 --email [email protected] -d my.domain.name-1.de -d my.domain.name-2.de -d my.domain.name-3.de
certbot.eff.org -EFFのCertbotを使用してWebサイトでHTTPSを自動的に有効にし、Let's Encrypt証明書を展開します。
上記の答えは this one に基づいており、ApacheのVH設定の詳細が提供されています。
2019年2月13日までletsecrypt
/certbot
を更新する方法と理由をこちらでお読みください: buntu Bionicでcertbotをアップグレードできませんでした