RHEL 6にApacheをインストールしました。すべてがうまくいきます。使用するにはどのような変更と設定が必要ですか? https://localhost:443/。
「Listen 80」を443に変更すると、SSL接続エラーが発生します。
"エラー 107(net::ERR_SSL_PROTOCOL_ERROR): SSL プロトコル エラー。"
答え1
を使用している場合は、apache2
次のことを行う必要があります。
ステップ1:OpenSSLを使用してサイトを保護するためのキーを生成します。これらのキーは、セキュリティサイトへのトラフィックを暗号化して復号化するために使用されます。
$ openssl genrsa -out mydomain.key 1024
このコマンドは、1024ビット秘密鍵を生成してmydomain.keyファイルに保存します。
ステップ2:独自の証明書を生成します。
$ openssl req -new -key mydomain.key -x509 -out mydomain.crt
ステップ3:そのディレクトリに秘密鍵を保存し、/etc/apache2/ssl.key/
そのディレクトリに証明書を保存します/etc/apache2/ssl.crt/
。
メモ:このssl.key
ディレクトリはルートのみを読み取ることができる必要があります。
ステップ4:httpd.conf
今編集する必要があります/etc/apache2
。
これで、ファイルには次の内容が含まれているはずです。
NameVirtualHost *:80
NameVirtualHost *:443
Listen 443
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain
ServerName www.mydomain.com
ServerAlias mydomain.com
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain-secure
ServerName mail.mydomain.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/mydomain.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/mydomain.key
</VirtualHost>
<Directory /srv/www/htdocs/mydomain-secure>
SSLRequireSSL
</Directory>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /srv/www/htdocs/mydomain
ServerName mail.mydomain.com
RedirectMatch permanent (/.*) https://mail.mydomain.com$1
</VirtualHost>
答え2
Listen 80
では変更しないでください。 SSL443
はで/etc/httpd/conf/httpd.conf
構成されています/etc/httpd/conf.d/ssl.conf
。 RHEL 6ではSSLが有効になっており、デフォルトでは自己署名証明書を使用して受信します。
SSLを使用して簡単にプライマリサイトをナビゲートできますhttps://localhost
(URLの末尾にポートを追加する必要はありません)。
すべてのHTTPリクエストをHTTPSに転送するには(あなたが達成しようとしていると思います)、永続的なリダイレクトを追加するか、Apacheモジュールを使用できますmod_rewrite
。
最も簡単で安全な方法は、永続的なリダイレクトを設定することです。名前付き仮想ホストを有効にし、Redirect
VirtualHostにディレクティブを追加します/etc/httpd/conf/httpd.conf
。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
Redirect permanent / https://localhost
</VirtualHost>
を使用すると、名前付きmod_rewrite
仮想ホストを作成することもできます。これは推奨されるアプローチではありませんが、機能します。
NameVirtualHost *:80
<VirtualHost *:80>
# Enable the Rewrite engine
RewriteEngine On
# Make sure the connection is not already HTTPS
RewriteCond %{HTTPS} !=on
# This rewrites the URL and forwards to https
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
SSLをオフにするには、この行をコメントアウトして/etc/httpd/conf.d/ssl.conf
Apacheを再起動してください。
LoadModule ssl_module modules/mod_ssl.so
Listen 443