OpenSSL 로 서버 SSL 인증서 검사
이 마지막 단계에서는 Nginx 서버가 클라이언트에 제공하는 디지털 인증서의 세부 정보를 검사합니다. 이는 TLS/HTTPS 문제를 해결하고 서버의 신원을 확인하는 데 중요한 기술입니다. openssl 도구를 다시 사용하지만 이번에는 클라이언트로 사용하여 자체 서버에 연결하고 제공하는 인증서를 검사합니다.
파이프 (|) 로 연결된 두 개의 openssl 명령 조합을 사용합니다.
openssl s_client -connect localhost:443: 이 명령은 일반 SSL/TLS 클라이언트로 작동하며 지정된 서버 및 포트에 연결합니다. 세션 세부 정보와 함께 서버의 인증서를 출력합니다.
openssl x509 -text -noout: 이 명령은 X.509 인증서의 내용을 사람이 읽을 수 있는 형식으로 구문 분석하고 표시하는 데 사용됩니다.
s_client의 출력을 x509로 직접 파이프하여 인증서를 즉석에서 구문 분석합니다. 시작 부분의 echo |는 s_client가 사용자 입력을 기다리지 않도록 하고, 2>/dev/null은 연결 상태 메시지를 숨깁니다. 명확성을 위해 출력을 파일에 저장합니다.
다음 명령을 실행하여 서버에 연결하고, 인증서를 추출하고, 구문 분석하고, 세부 정보를 /tmp/server_certificate_details.txt라는 파일에 저장합니다.
echo | openssl s_client -connect localhost:443 2> /dev/null | openssl x509 -text -noout > /tmp/server_certificate_details.txt
이제 방금 만든 파일의 내용을 표시하여 인증서 세부 정보를 확인합니다.
cat /tmp/server_certificate_details.txt
인증서의 속성에 대한 자세한 분석을 볼 수 있습니다.
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, ST = State, L = City, O = LabOrg, OU = IT, CN = localhost
Validity
Not Before: Oct 30 09:00:00 2023 GMT
Not After : Oct 29 09:00:00 2024 GMT
Subject: C = US, ST = State, L = City, O = LabOrg, OU = IT, CN = localhost
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:
...
Exponent: 65537 (0x10001)
...
잠시 시간을 내어 출력을 검토하십시오. 다음 주요 필드를 확인하십시오.
- Issuer: 인증서를 서명한 주체입니다.
- Subject: 인증서가 발급된 주체입니다.
- CN (Common Name): 인증서가 적용되는 특정 도메인 (
localhost) 입니다.
이것은 자체 서명 인증서이므로 Issuer와 Subject 필드가 동일합니다. 이것이 자체 서명 인증서의 특징입니다. 유효 기간과 공개 키 세부 정보도 볼 수 있습니다.
축하합니다! 자체 서명 SSL 인증서로 Nginx 웹 서버를 성공적으로 설정하고, HTTPS 를 위해 구성하고, 연결을 테스트하고, 인증서 세부 정보를 검사했습니다. 이제 TLS/HTTPS로 웹 트래픽을 보호하는 데 관련된 구성 요소에 대한 기본적인 이해를 갖추었습니다.