언어별 인증서 설치 방법

    keytool 명령어를 사용하여 G2 인증서의 설치 여부를 확인합니다.

keytool –list –v –keystore $JAVA_HOME/jre/lib/security/cacerts | grep "DigiCert Global Root G2"

    정상적으로 설치가 완료되었다면 아래와 같이 소유자, 발급자 정보가 노출됩니다.

소유자: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
발급자: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US

    소유자, 발급자 정보가 노출되지 않는 경우,

  • JDK 1.8.0_361 이상 버전으로 업데이트가 필요합니다.
  • JDK 버전을 업데이트할 수 없는 경우 cacerts에 Digicert Global Root G2 인증서를 수동으로 등록해야 합니다.
    (JAVA 1.7 이하 버전은 기본적으로 G2 인증서가 포함되어 있지 않아 통신 오류가 발생합니다.)

G2 인증서 수동 설치 방법

    2. G2 인증서 수동 등록 (아래 명령어 실행)

keytool -importcert -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass [1q2w3e4r] -trustcacerts -alias 
digicert_global_root_g2 -file [루트 인증서 파일위치]/DigiCertGlobalRootG2.crt.pem -noprompt

    3. G2 인증서 설치 확인 (keytool 명령어 활용)

keytool –list –v –keystore $JAVA_HOME/jre/lib/security/cacerts | grep "DigiCert Global Root G2"

    4. 소유자, 발급자 정보 확인

소유자: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US
발급자: CN=DigiCert Global Root G2, OU=www.digicert.com, O=DigiCert Inc, C=US



G2 인증서 다운로드 URL(.pem)


방법 1. php.ini 파일 내 인증서 설정

    php.ini 파일 내 curl.cainfo 또는 openssl.cafile에 중간 인증서가 포함된 .pem 파일 경로를 추가합니다.

; pem 형식 인증서 파일 (root + 중간 포함 가능)
curl.cainfo="{G2 인증서 경로}/DigiCertGlobalRootG2.crt.pem"

방법 2. curl 옵션 내 수동 지정

curl_setopt($ch, CURLOPT_CAINFO, "{G2 인증서 경로}/DigiCertGlobalRootG2.crt.pem");

방법 3. OS 레벨내 인증서 설치


  • PHP 레벨에서는 OS 혹은 ini 파일에 G2 인증서가 적용되어 있지 않더라도 서버 측에서 루트 인증서를 보내는 경우,
    일반적으로 해당 인증서를 보고 정상 통신합니다.
  • 단, 폐쇄망에서 연동한 경우 서버 측의 루트 인증서를 받지 못할 수 있으므로 반드시 통신 테스트를 진행하시고
    통신 오류 발생 시, 위에 기재한 내용에 따라 php.ini 파일 또는 코드 수동 지정, 혹은 OS 레벨에서의 G2 인증서 적용이 필요합니다.



G2 인증서 다운로드 URL(.pem)


방법 1. HTTPS 요청 시 CA 번들 명시

const https = require('https');
const fs = require('fs');
 
const agent = new https.Agent({
    ca: fs.readFileSync('.digicert_g2.pem') // G2 인증서 명시.
});

방법 2. OS 레벨내 인증서 설치


  • 폐쇄망 환경에서 연동 중인 Node.js 버전이 14 이하인 경우 내장된 OpenSSL 버전에 따라 G2 루트 인증서가 포함되어 있지 않아 통신 테스트가 실패할 수 있습니다.
  • Node.js로 테스트 시 16 이상의 버전으로 업데이트를 권장합니다.