SSL 인증서 없음

SSL 인증서 없음

내 웹 사이트 클라이언트의 SSL 상태를 확인하고 오류를 반환하는 bash 스크립트를 만들려고 합니다. 그러나 모든 IP에 대해 wget https://$ip:$port다음과 같은 오류가 발생합니다.

ERROR: The certificate of 1.2.3.4 is not trusted
ERROR: The certificate of 1.2.3.4 hasn't got a know issuer

Firefox를 사용해 보면 각 IP에 대한 인증서가 있습니다. 그래서 저는 Firefox CA를 다음과 같은 저장소에 덤프하려고 했습니다.

wget http://$ip:$port --ca-directory=(directory of CA from Firefox)

그러나 그것은 아무것도 바꾸지 않습니다.

제 생각에는 wgetSSL 인증서를 찾지 못하고 인증서를 얻는 방법을 모르겠습니다.

인증서 정보는 어떻게 얻을 수 있나요?

답변1

www.example.com일반적으로 SSL 인증서는 IP 주소가 아닌 호스트 이름 과 같은 호스트 이름으로 발급됩니다 .
따라서 IP 주소를 사용하면 액세스하는 URL과 인증서가 발급된 호스트 이름이 일치하지 않게 됩니다.

둘째, wget 매뉴얼 페이지에 따라 다음과 같이 Firefox의 CA 디렉토리가 적합하지 않을 수 있습니다.

--ca-디렉토리=디렉터리PEM 형식의 CA 인증서가 포함된 디렉터리를 지정합니다. 각 파일에는 하나의 CA 인증서가 포함되어 있으며 파일 이름은 인증서에서 파생된 해시 값을 기반으로 합니다. ...

나는 wget이 openssl 라이브러리를 사용한다고 생각합니다. 예를 들어 SSL 인증서의 만료 날짜를 결정하는 쿼리에서 인증서 상태를 확인하는 더 자세한 유틸리티를 만들 수 있습니다.

 echo "GET /" | openssl s_client -connect servername:port  | openssl x509 -noout -dates

관련 정보