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://에서 우분투 기본 웹사이트를 볼 수 있습니다. 응용프로그램은 http://...:3000에서만 작동합니다.
EC2의 보안 그룹에 포트 443을 추가했습니다.
어떡해?
답변1
서버에 인증서 파일을 두는 것만으로는 충분하지 않습니다. 포트(예: 443)에서 수신 대기하고 클라이언트가 SSL 연결을 원할 때 암호화 알고리즘으로 응답하는 서비스가 필요합니다. 그것은 할 수 있습니다 :
- 다른 포트(예: 이 범주의 apache 및 nginx)에서는 80 및 443에서 하나는 http용이고 다른 하나는 https용입니다.
- 예를 들어, 동일한 포트에서 메일 서버는 동일한 포트에서 TLS와 일반 텍스트 프로토콜을 사용할 수 있습니다.
따라서 서비스에 따라 다릅니다.