最近、Apache 2を実行しているAmazon EC2 Ubuntu 12.04(32bit)サーバーにSSL証明書をインストールしました。
Https経由でサイトにアクセスしようとすると、ロードされません。 nmapスキャンを実行すると、ポート443が開いていないことがわかります。
IPテーブルでポート443を開かないようにしました。 iptables -L
yeilds
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:https
Sslのインストール方法は次のとおりです
/etc/init.d/Apache2.confを修正してssl.confを組み込み、ssl.confを修正して証明書ファイルの必須パスを組み込みました。
SSLCertificateFile/path/file SSLCertificateKeyFile/path/file SSLCertificateChainFile/path/file
ポート443(TCPソース:0.0.0.0/0)からのインバウンド要求を許可するようにセキュリティグループを構成しました
PHPで次のテストを実行するとき
if (!extension_loaded('openssl'))
{
echo "not loaded";
}
else
{
echo "loaded" ;
}
「ロード」されます。
何か案は?
Httpd-ssl.confにListen 443がありますか
そうでない場合は、追加して、Apacheを再起動してください。
最初にmod_sslが有効になっているかどうかを確認します。そうでない場合は、a2enmod sslを実行して有効にします。次に、Apacheがポート443でhttpsをリッスンしているかどうかを確認します。次に、ファイアウォールがポート443をブロックしていないかどうかを確認します。
Httpd.confでは、以下はデフォルトで無効になっています。
# Secure (SSL/TLS) connections
# Include conf/extra/httpd-ssl.conf
インクルードから#を削除して、Apacheを再起動します。
ローカルに接続できる場合(例:telnet localhost 443
mtiが示唆するように)、ファイアウォールが適切に構成されているかどうかを確認します。
私の場合、ufw
がすべてをブロックしていたので、ufw allow 443
根本的な問題を同じ症状に修正しました。
他の誰かがこれを見つけてAmazon Lightsail(私のように)を使用している場合は、ポート443を明示的に開くためにWeb UIを使用する必要があります。
私はそれを発見する前に私のサーバー設定ファイルを注ぐことに何時間も費やしました:/
私にとっては、愚かなChromeキャッシュ。Ctrl + Shift + Del
キャッシュをクリアし、Chromeを再起動すると、SSLが正しく機能するようになります。
ポート443でリッスンしているプロセスがあり、ファイアウォールが完全に開いていて、SELinuxが無効になっており、Istillができないという状況に陥りましたポート443へのtelnet。私は取得し続けました:
telnet 127.0.0.1 443
telnet: connect to address 127.0.0.1: Connection refused`
Iptables NATテーブルには、ポート443から入ってくるトラフィックを別のポート(8443)にリダイレクトするルールがありました。ポート8443でリッスンしていませんでした。
# iptables --table nat --list
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:https redir ports 8443
関連するNATエントリを削除すると、問題が修正されました。
SSLキーが設定されていない場合(またはgremlinsによって不可解にコメントアウトされている場合)、Apache 2.2 SSLは警告なしに失敗します。ログにエラーはなく、443をリッスンしません。http:80サイトは機能します。