커피닉스, 시스템 엔지니어의 쉼터
  Firefox에서만 SSL인증서 에러 날 때(unknown_issuer) 작성일 : 2009/08/12 13:06
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 26929
     
    제  목 : Firefox에서만 SSL인증서 에러 날 때(unknown_issuer)
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2009.8.11(화)

    SSL 인증서가 MS 익스플로러와 구글 크롬에서는 정상적으로 동작하는데, 이상하게 Firefox 3.0.x과 3.5.x에서만 에러를 내뱄는 경우가 있다.
    왜 이런 문제가 생기는지, 그리고 어떻게 해야 해결할 수 있는지를 설명한다.

    1. Firefox에서 에러나는 화면 살펴보기

    다음은 Firefox 3.5에서 에러가 발생할 때 메시지이다.

     
    # 한글 Firefox 3.5에서
    상세 기술 정보

    OOO.OOOOOOOOO.OOO 도메인은 유효하지 않은 보안 인증서를 사용합니다.
    발급자 인증서를 알 수 없기 때문에 인증서를 신뢰할 수 없습니다.
    (오류 코드: sec_error_unknown_issuer)

    # 영문 Firefox 3.5에서
    Technical Details

    OOO.OOOOOOOOO.OOO uses an invalid security certificate.
    The certificate is not trusted because the issuer certificate is unknown.
    (Error code: sec_error_unknown_issuer)
     


    [ FireFox 3.5에서 SSL 인증서 에러화면. ※ 네모상자에는 도메인이 표시가 되는데, 지웠음. ]
    firefox에서 SSL인증서 에러

    2. 왜 에러가 발생하나

    첫째, 발급기관의 인증서(CA 인증서)를 웹서버에서 설정하지 않는 경우이다. 아파치의 경우 SSL 설정 부분에 SSLCACertificateFile를 설정한다.

     
    # Certificate Authority (CA):
    SSLCACertificateFile /usr/local/...경로.../인증서파일
     


    CA인증서를 지정을 했는데도 에러가 나는 경우도 있다. 다음 내용은 상위 인증기관이 VeriSign인 경우애 해당된다.

    인증기관통해서 발급받은 인증서를 살펴보자. Issuer 의 CN(Common Names)부분을 보면은 예전에 발급 받은 것과 올해(정확히는 2009.5.17일 이후) 발급받은 것이 약간의 차이가 있다는 것을 확인할 수 있다. (어떤 인증서를 구매했느냐에 따라서 CN= 은 다르게 나옴. 그러나 아래 내용은 기존과 같은 종류의 인증서를 구매했는데, 다르게 나온 것임)

    예전 : CN=VeriSign Class 3 Secure Server CA
    현재 : CN=VeriSign Class 3 Secure Server CA - G2

     
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                ... 생략 ...
            Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use at https://www.verisign.com/rpa (c)09, CN=VeriSign Class 3 Secure Server CA - G2
     


    verisign
    VeriSign은 2009년 5월 17일에 SSl, OFX, 코드사이닝(Code Signing) 인증서를 1024비트 SHA-1로 업그레이드했다. 따라서 기존에 서버에 설치된 CA인증서 파일을 다른 파일명으로 바꾸고, 업그레이드된 CA인증서를 새로 설치해야 Firefox에서 에러가 발생하지 않는다. CA인증서는 root 인증서와 intermediate 인증서 모두 바뀌었다. CA인증서를 바꿔야하는지 여부는 발급 일자에 따라 정리하면 다음과 같다.

    - 2009년 5월 17일 이전에 발급받은 인증서라면 만료될 때까지 기존의 CA인증서를 그대로 사용하면 된다.
    - 그러나 그 이후 신규 발급받거나 갱신된 인증서는 새 CA인증서를 설치해야 한다.

    이에 대한 자세한 글은 '4. 관련 자료'의 'Important Update: VeriSign SSL, OFX and Code Signing Certificates moved to 1024-bit SHA-1 root as of May 17, 2009.'을 읽어보기 바란다.

    3. 문제해결

    'VeriSign Intermediate CA Certificates'(URL은 '4. 관련 자료' 참고)페이지에 접속한다. 구매한 인증서 종류에 맞게 설치한 CA 인증서를 클릭한다. 여기서는 'Standard SSL Certificate'를 클릭했다.

    [ VeriSign의 'Intermediate CA Certificates' 인증서 내려받기 페이지 ]
    VeriSign Intermediate CA Certificates

    위에는 현재 인증서(After May 17th), 아래는 과거 인증서(Before May 17th)가 나오는데,

    인증서를 Copy & Paste하여 웹서버에 저장한다. 이 때 파일명은 아파치의 SSLCACertificateFile 에서 지정한 파일명으로 저장한다면 된다. 저장 후 웹서버를 재실행하면 완료.

    Firefox에서 설치된 CA 인증서를 확인할 수 있다.

    - 한글 Firefox : 도구  -> 설정    -> 고급     -> 암호화 탭     -> 인증서 보기
    - 영문 Firefox : Tools -> Options -> Advanced -> Encryption 탭 -> View Certificates

    [ Firefox 3.5의 인증서 관리자(Certificate Manager). 아직 새로운 CA인증서가 없다.  ]
    firefox의 인증서 관리자, Certificate Manager

    [ 새 CA인증서로 교체하고 사이트에 접속하면 해당 인증기관의 CA인증서(여기서는 'VeriSign ... CA - G2')가 추가되어 있다.   ]
    firefox의 인증서 관리자, Certificate Manager

    문제 해결 전 상황으로 돌아가서 생각해보자.
    Firefox 3.5.x, 3.0.x 버전을 사용하는 여러 대의 PC가 있다고 가정한다. 그런데, 어떤 PC에서는 에러가 났으나 특정 PC에서는 발생하지 않을 수 있다. 다 같이 에러가 발생해야 하는데, 에러가 없는 PC가 있는 것은 왜 그럴까? 에러가 발생하지 않은 PC는 다른 사이트에 접속해서 해당 종류의 CA 인증서를 이미 받아왔기 때문이다('인증서 관리자'에 이미 들어있다는 것). 따라서, 관리하는 사이트에 접속을 했도 에러가 발생하지 않은 것이다.

    4. 관련 자료

    1) Verisign 인증서 관련

      - Important Update: VeriSign SSL, OFX and Code Signing Certificates moved to 1024-bit SHA-1 root as of May 17, 2009.
        https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=AD146&actp=LIST
      - VeriSign Intermediate CA Certificates (CA 인증서 목록)
        https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=AR657
      - Intermediate CA Certificates (SSL 표준 인증서의 CA 인증서)
        http://www.verisign.com/support/verisign-intermediate-ca/secure-site-intermediate/index.html
      - VeriSign의 인증서 종류
        http://www.verisign.com/repository/ca-ra.html

    2) 그외
       - openssl로 인증서 정보 살펴보기 (2008.12, 글 좋은진호)
         http://coffeenix.net/board_view.php?bd_code=1661
       - SSL 운영(https)시 도메인기반 Virtual host가 안되는 이유 (2007.9, 글 좋은진호)
         http://coffeenix.net/board_view.php?bd_code=1543
       - mod_ssl 설정시 - (13)Permission denied: couldn't grab the accept mutex 에러 처리. (2007.3, 글 류범룡)
         http://coffeenix.net/board_view.php?bd_code=1482


    커피닉스, 시스템 엔지니어의 쉼터 / URL : http://coffeenix.net/board_view.php?bd_code=1683