SSL 인증서가 해지되었는지 확인하는 방법


23

최근 heartbleed 취약점이 발견되면서 인증 기관에서 인증서를 다시 발급해야했습니다.

heartbleed 취약점이 발견되기 전에 생성 된 두 개의 인증서가 있습니다. SSL 발급자가 인증서를 재생성하라고 말한 후 새 서버로 두 서버 / 도메인을 모두 업데이트했습니다.

내 이해가 정확하면 이전 인증서는 CA에 의해 해지되어 CRL (인증서 해지 목록) 또는 OCSP 데이터베이스 (온라인 인증서 상태 프로토콜)로 보내 졌어 야합니다. 그렇지 않으면 기술적으로 " 손상된 인증서에서 수집 한 정보에서 인증서를 재생성하여

기존 인증서가 CRL 및 OCSP에 적용되었는지 확인하는 방법이 있습니까? 그들이 포함시킬 방법이 없다면?

업데이트 : 상황은 이미 인증서를 교체 한 것입니다. 이전 인증서의 .crt 파일 만 있으면 URL을 사용하여 확인할 수 없습니다.


내가 믿는 certutil을 사용하여 확인할 수 있습니다. 여기를
MichelZ

1
서버에서 우분투를 데스크탑으로 사용하고 Centos를 사용합니다
sridhar pandurangiah

그런 다음 질문에 태그를 추가하시기 바랍니다
MichelZ

나는 * nix
MichelZ April

@MichelZ - 나는 우분투 질문 태그 한
스리 pandurangiah

답변:


10

인증서에서 ocsp URL을 가져옵니다.

$ openssl x509 -noout -ocsp_uri -in /etc/letsencrypt/archive/31337.it/cert1.pem
http://ocsp.int-x1.letsencrypt.org/
$

인증서가 해지되었는지 확인하기 위해 요청을 ocsp 서버에 전송하십시오.

$ openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain4.pem -cert /etc/letsencrypt/archive/31337.it/cert4.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 10:00:00 2015 GMT
        Next Update: Nov  5 10:00:00 2015 GMT
$

이것은 좋은 증명서입니다.

이것은 해지 된 인증서입니다.

$  openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain3.pem -cert /etc/letsencrypt/archive/31337.it/cert3.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 12:00:00 2015 GMT
        Next Update: Nov  5 12:00:00 2015 GMT
        Revocation Time: Oct 29 12:33:57 2015 GMT
$

이것은 나를 위해 일했지만 (감사합니다), 또한 해지 시간 외에도 해지 이유도 표시했습니다. 이는 우리가 도대체 ​​무슨 일이 있었는지 알아 내려고 발행자에게 연락했을 때 도움이되었습니다. 증명서.
sdek

10

Windows에서 certutil을 사용할 수 있습니다.

인증서가 있고 유효성을 확인하려면 다음 명령을 수행하십시오.

certutil -f –urlfetch -verify [FilenameOfCertificate]

예를 들어

certutil -f –urlfetch -verify mycertificatefile.cer

소스 / 추가 정보 : TechNet

또한 CA에 확인하십시오. 인증서를 다시 입력하거나 새 인증서를 얻는다고해서 자동으로 취소한다는 의미는 아닙니다!


1
certutilUbuntu 서버에 설치하려면 명령을 사용하십시오 sudo apt-get install libnss3-tools. apt-get 캐시를 검색하면 문자열에 대한 결과가 반환되지 않으므로 이는 분명하지 않습니다 certutil. OP의 서버가 CentOS라는 것을 알고 있지만 다른 Ubuntu 서버 관리자 도이 질문을 유용하게 사용할 수 있습니다.
dotancohen

내 대답은 순전히 Windows 기반이었습니다. 나는 이것의 * nix 구현에 대해 모른다. 가능한 * nix 솔루션에 대해서는 여기 를 참조 하십시오
MichelZ

2
@dotancohen 해당 프로그램은이라고도하지만 Windows certutil와 동일한 프로그램 certutil.exe이 아니며 같은 방식으로 사용되지 않습니다.
Dan Getz

1

SSLLabs 서비스 를 사용 하여 SSL 인증서를 테스트 할 수 있지만 웹에서 액세스 할 수 있어야합니다. 또한 더 많은 정보를 찾을 수 있습니다.이 서비스로 인해 감사가 제공됩니다.


이를 위해서는 서버가 이전 인증서로 실행되어야합니다. 그러나 내 인증서를 다시 생성하면 이전 인증서의 .crt 파일입니다.
sridhar pandurangiah

1

인증서를 생성 한 CA를 통해 인증서를 해지 한 경우 OCSP 및 CRL에 인증서를 만들었을 것입니다.

이것이 사실인지 확인하려면 인증서에서 ocsp url을 추출한 다음 인증서 일련 번호, ca 발급자 인증서를 포함하여 해당 URL에 ocsp 요청을 구성하고 ocsp 응답을 검색하십시오. 구문 분석하여 실제로 취소되었는지 확인하고 확인하십시오.

이 유용한 페이지에서 자세한 내용을 확인하십시오 : http://backreference.org/2010/05/09/ocsp-verification-with-openssl/

참고 : openssl 라이브러리를 사용해야합니다.

편집 1 :이 답변 후에 OCSP 및 CRL에 대한 정보를 명시 적으로 추가 한 것으로 나타났습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.