내 웹사이트 클라이언트의 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)
그러나 그것은 아무것도 바꾸지 않습니다.
SSL 인증서를 찾을 수 없으며 wget
인증서를 얻는 방법을 모르겠습니다.
인증서 정보를 얻는 방법은 무엇입니까?
답변1
일반적으로 SSL 인증서는 호스트 이름(예 www.example.com
: IP 주소가 아님)에 발급됩니다.
따라서 IP 주소를 사용할 때 방문하는 URL과 인증서를 발급한 호스트 이름이 일치하지 않습니다.
둘째, wget 매뉴얼 페이지에 따르면 Firefox의 CA 디렉토리는 적합하지 않을 수 있습니다.
--ca-directory=디렉터리PEM 형식의 CA 인증서가 포함된 디렉터리를 지정합니다. 각 파일에는 CA 인증서가 포함되어 있으며 파일 이름은 인증서에서 파생된 해시 값을 기반으로 합니다. ...
내 생각에 wget은 openssl 라이브러리를 사용하므로 쿼리에서 SSL 인증서의 만료 날짜를 결정하는 등 인증서 상태를 확인하는 데 더 자세한 유틸리티가 될 수 있습니다.
echo "GET /" | openssl s_client -connect servername:port | openssl x509 -noout -dates