유효한 인증서를 구입했습니다.
예를 들어 이 사이트에서는 이를 검증합니다. https://sslanalyzer.comodoca.com/?url=www.example.com
하지만 openSSL로 테스트하면 다음과 같습니다.
openssl s_client -showcerts -connect https://www.example.com:443
나는 얻다
반환 코드 확인: 18(자체 서명된 인증서)
답변1
SNI 홀
당신은 다음과 같은 상황에 빠졌습니다.SNI 홀.
SNI는서버 이름 표시. 이를 통해 동일한 공유 IP에 여러 개의 서로 다른 호스트 이름을 가질 수 있습니다. 그리고 실제로 SNI 지원 서버에 서버 이름을 표시하지 않으면 기본 인증서를 다시 받게 됩니다. ('SNI 홀' 부분입니다.)
그리고 OpenSSL은 사용자가 지정하지 않는 한 TLS 서버에 서버 이름을 제공하지 않습니다. -servername
이를 위해 매개변수를 사용하세요 .
$ echo '' | openssl s_client -showcerts -connect www.unival-logistics.com:443 -servername www.unival-logistics.com 2>/dev/null | grep -Ei 'subject|issuer|return'
subject=/C=US/OU=Domain Control Validated/CN=www.unival-logistics.com
issuer=/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - SHA256 - G2
Verify return code: 20 (unable to get local issuer certificate)
이를 생략하면 해당 호스트에 대한 기본 인증서를 얻게 됩니다. 그리고 여기에 자체 서명된 인증서가 있습니다. (그리고 나는 그것이 거기에 있어야 한다고 생각하지 않습니다. 자체 서명된 인증서를 전달하는 것은 의미가 없습니다.)
$ echo '' | openssl s_client -showcerts -connect www.unival-logistics.com:443 2>/dev/null | grep -Ei 'subject|issuer|return'
subject=/O=americanfuturegate.com/CN=*.americanfuturegate.com/[email protected]
issuer=/O=americanfuturegate.com/CN=*.americanfuturegate.com/[email protected]
Verify return code: 18 (self signed certificate)
해당 설치를 확인하세요
참고 사항: SSL3을 비활성화하시기 바랍니다. (SSL 연구소 보고서여기.)