Amazon EC2で実行されるサーバーを設定しようとしています。
私はポート80でノードアプリを実行する方法を見つけましたが、今Letsencrypt SSLを使用してポート443で実行しようとしています。ポート80で作業する前に、以下を追加しました。
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000
そして
sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3000
みんな大丈夫です。しかし、今Letsencryptをインストールした後も同じことを試しましたが、80の代わりにポート443を使用しましたが、うまくいきませんでした。
Letsencryptが自動的にすべてのファイルを設定したので、httpからhttpsへのリダイレクトは正常に機能します。 https://でUbuntuの基本的なウェブサイトを見ることができます。アプリケーションはhttp://...:3000でのみ動作します。
EC2のセキュリティグループにポート443を追加しました。
どうですか?
答え1
サーバーに証明書ファイルを置くだけでは十分ではありません。ポート(443など)でリッスンし、クライアントがSSL接続を希望する場合は、暗号化アルゴリズムで応答するサービスが必要です。それはできます:
- 他のポート(たとえば、このカテゴリのapacheおよびnginx)では、80および443では1つはhttp用、もう1つはhttps用です。
- たとえば、同じポートのメールサーバーは、同じポートでTLSとプレーンテキストプロトコルを使用できます。
したがって、サービスによって異なります。