数時間後、SSL証明書を使用するようにApacheを構成することができましたが、構成に問題があることがわかりました。次のアドレスを入力するだけでGoogleChromeからドメインにアクセスしようとすると、次の警告が表示されます。
erichermansson.com
Forbidden
You don't have permission to access / on this server.
しかし、Google Chromeに次のアドレスを入力すると、サーバーにアクセスして証明書を操作できます。
https://erichermansson.com
私は何を間違えますか?
これが私のVirtualHostです:
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName erichermansson.com
ServerAlias www.erichermansson.com
SSLEngine ON
SSLCertificateFile /www/erichermansson.com/ssl/erichermansson.com.crt
SSLCertificateKeyFile /www/erichermansson.com/ssl/erichermansson.com.key
DocumentRoot /www/erichermansson.com/html/
ErrorLog /www/erichermansson.com/logs/error.log
CustomLog /www/erichermansson.com/logs/access.log combined
<Directory /www/erichermansson.com/html/ >
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
HTTPをHTTPSにリダイレクトするには、次のことを行う必要があります(おそらくすでに行った最初の3つのステップ)。
ルーターのポート80を許可します。
ポート80をサーバーに転送します。
ファイアウォールのパンチ穴:
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
ポート80(および443)のVirtualHostを定義します。
<VirtualHost *:80>
ServerName erichermansson.com
ServerAlias www.erichermansson.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R]
RewriteCond %{HTTPS} !on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
... your code here ...
</VirtualHost>
</IfModule>
アクティベートmod_rewrite
:
sudo a2enmod rewrite
HTTPからHTTPSへのリダイレクトを次のように定義します。
RewriteCond %{HTTPS} !on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301]
これはすでにステップ4を実行しました。
そして最後にApacheを再起動します。
sudo service apache2 restart
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加