EC2 Linux Ubuntu 환경에서 SSL 을 nginx 에 등록하여 사용하려고 하는데, 에러가 발생합니다.

0

EC2 Linux Ubuntu 환경에서 SSL 을 nginx 에 등록하였고, Flask 서버로 접속시 해당 SSL 을 통해 접속하여려고 하는데, 에러가 발생했습니다.

기존에 Flask 서버는 등록하여 사용하는 상황이었고, SSL 인증이 필요하여, 인증서를 /etc/ssl 의 하위 폴더에 복사한 후, EC2 Linux Ubuntu 환경에 nginx 를 설치한 후에, /etc/nginx/sites-availables/default 에 아래와 같이 설정하였습니다.

server { listen 443 ssl; server_name chatgpt-bridge.com;

    ssl_certificate /etc/ssl/certs/ssl.crt;
    ssl_certificate_key /etc/ssl/private/ssl_unencrypted.key;
    ssl_trusted_certificate /etc/ssl/certs/chain_all_ssl.crt;

    location / {
            proxy_pass http://127.0.0.1:5000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            # try_files $uri $uri/ =404;
    }

}

위 상황에서 아래 명령어를 사용해서 SSL 의 상태를 확인해 보면 아래와 같이 나옵니다. $ openssl s_client -connect test.com:443 -showcerts

CONNECTED(00000003) depth=0 CN =test.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = chatgpt-bridge.com verify error:num=21:unable to verify the first certificate verify return:1 depth=0 CN = chatgpt-bridge.com verify return:1

..............

Server certificate subject=CN = chatgpt-bridge.com issuer=C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA

No client certificate CA names sent Peer signing digest: SHA256 Peer signature type: RSA-PSS Server Temp Key: X25519, 253 bits

SSL handshake has read 2170 bytes and written 400 bytes Verification error: unable to verify the first certificate

New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384 Server public key is 2048 bit Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated Early data was not sent Verify return code: 21 (unable to verify the first certificate)


Verification 이 안되는 원인과 해결할 수 있는 방법을 알 수 있을까요? ssl 인증서는 예전에 다른 호스팅에서 잘 사용하고 있던 도메인과 SSL 이기 때문에 EC2 에 복사해서 사용하는 데 문제가 없을 것이라고 생각이 되는데, 검토 부탁드립니다.

고맙습니다.

yboram
질문됨 한 달 전40회 조회
2개 답변
0

네, 감사합니다. test.com 은 제가 예시를 위해서 사용한 도메인이고, EC2 console 에서 아래와 같이 입력 하고 다시 테스트 했습니다.

$ openssl s_client -connect chatgpt-bridge.com:443 -servername chatgpt-bridge.com -showcerts

[Result]

CONNECTED(00000003) depth=0 CN = chatgpt-bridge.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = chatgpt-bridge.com verify error:num=21:unable to verify the first certificate verify return:1 depth=0 CN = chatgpt-bridge.com verify return:1

Certificate chain 0 s:CN = chatgpt-bridge.com i:C = GB, ST = Greater Manchester, L = Salford, O = Sectigo Limited, CN = Sectigo RSA Domain Validation Secure Server CA a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256 v:NotBefore: Jan 16 00:00:00 2024 GMT; NotAfter: Jan 15 23:59:59 2025 GMT -----BEGIN CERTIFICATE-----

혹시 이슈의 원인이 어떤 것일지 모르겠습니다. nginx 의 /etc/nginx/sites-available/default 에 아래와 같이 입력했습니다.

server { listen 443 ssl; listen [::]:443 ssl; server_name chatgpt-bridge.com;

    ssl_trusted_certificate /etc/ssl/certs/chain_all_ssl.crt;
    ssl_certificate /etc/ssl/certs/ssl.crt;
    ssl_certificate_key /etc/ssl/private/ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
            proxy_pass http://127.0.0.1:5000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

    }

}

yboram
답변함 한 달 전
0

안녕하세요.

신규 서버를 셋업하는 중이시고, 아직 도메인을 신규 서버로 바라보도록 DNS 변경 이전이신 것 같습니다. SSL 인증서를 검증할 때에는 접근하는 도메인이 매우 중요합니다. 따라서 openssl s_client 명령으로 접속 시 다음과 같은 형태로 인증서 등록 시 지정한 도메인을 추가해서 연결하도록 시도해 보세요.

$ openssl s_client -connect test.com:443 -servername chatgpt-bridge.com -showcerts
froguin
답변함 한 달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인