Gomo
24
2020-03-05 20:00:42
3
344

apache 2.4 SSL 인증서 설정관련 오류입니다.


안녕하세요. apache 2.4 의 ssl 인증서 설정관련으로 문의드립니다. 현재 사용버전은 다음과 같습니다.

apache version : 2.4.41

openssl version : 1.1.1c

GlobalSign에서 발급받아놓은 인증서가 기존에 있었고 Root 인증서와 중간인증서를 가지고 있어서 두 파일을 하나로 합쳐 CA.crt 파일로 만들었고

       openssl verify -CAfile /../certDir/CA.crt 도메인.crt

명령어를 통해 OK를 확인하여 해당 인증서가 정상임을 확인했습니다.


httpd-ssl.conf 파일에 ssl 관련 설정은 다음과 같이 셋팅하였습니다.

SSLProtocol   all -SSLv2 -SSLv3
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

SSLCertificateFile "/../certDir/도메인.crt"
SSLCertificateKeyFile "/../certDir/도메인.key"
SSLCertificateChainFile "/../certDir/CA.crt"


문제는 인증서 체인이 제대로 설정되지 않는 것 같습니다.

일반적인 인증서는 Root 인증서 -> 중간 인증서 -> 도메인 인증서 로 연결되면서 인증하는 방식으로 알고 있으며

현재 위 설정을 해놨을때 크롬이나 기타 브라우저 설정상으로도 잘 연결된 것 처럼 나옵니다.


하지만 (okky.kr 사이트를 예시로 말씀드리면) openssl s_client -connect okky.kr:443 명령어를 통해 검증하려고 하면

Certificate chain

 0 s:CN = okky.kr

   i:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

 1 s:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

   i:O = Digital Signature Trust Co., CN = DST Root CA X3

이런식으로 나오는게 아니라

Certificate chain

 0 s:CN = okky.kr

   i:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

 1 s:C = Digital Signature Trust Co., CN = DST Root CA X3
i:C = Digital Signature Trust Co., CN = DST Root CA X3

이런식으로 Root 인증서가 두번 돌고 있습니다.


Root 인증서와 중간인증서를 합쳐놓은 CA.crt 파일로 설정해도 제대로 적용되지 않고 SSLCertificateChainFile 말고 SSLCertificateFile 로 설정을 해도 동일한 증상이 발생합니다.


//둘 중 어떤걸 적용하든 동일한 증상 발생

SSLCertificateFile "/../certDir/CA.crt"
SSLCertificateChainFile "/../certDir/CA.crt"


해당 체인인증을 제대로 설정하려면 어떻게 해야할까요? 혹은 어떤걸 더 확인해봐야할까요?

0
0
  • 답변 3

  • 이오니
    684
    2020-03-05 20:34:04 작성 2020-03-05 20:40:29 수정됨

    ca에 루트만 넣으시고 cert에 서버인증서+체인인증서 합친 파일 넣어보세요.


    2.4.8 이전에는 서버인증서, 체인인증서, CA인증서, 키 따로 넣게 되어 있었는데 문서 찾아보니까 서버 인증서에 체인인증서 합쳐라고 되어 있네요.


    The files may also include intermediate CA certificates, sorted from leaf to root. This is supported with version 2.4.8 and later, and obsoletes SSLCertificateChainFile. When running with OpenSSL 1.0.2 or later, this allows to configure the intermediate CA chain on a per-certificate basis.

    (http://httpd.apache.org/docs/2.4/mod/mod_ssl.html)

    1
  • Gomo
    24
    2020-03-06 00:13:07 작성 2020-03-06 00:17:12 수정됨

    이오니 답변 감사합니다.

    "ca에 루트만 넣으시고 cert에 서버인증서+체인인증서 합친 파일 넣어보세요."

    ssl 설정이 처음이라 이부분이 이해가 잘 안가는데...ㅠㅠ 조금만 자세히 여쭤보려고 합니다.


    서버인증서가 보통 도메인명으로 발급된 도메인.crt 를 말하는건가요?

    아래처럼 설정하라고 이해한게 맞을까요?

    SSLCertificateFile       서버인증서+체인(중개)인증서 합친파일
    SSLCertificateKeyFile "/../certDir/도메인.key"
    SSLCertificateChainFile 루트 CA 인증서
    0
  • 이오니
    684
    2020-03-06 13:14:35 작성 2020-03-06 13:16:45 수정됨

    SSLCACerfiticateFile여기에 루트 CA 인증서 넣으시면 됩니다.


    https://www.securesign.kr/guides/Apache-SSL-Certificate-Install

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.