server-side/nginx
nginx Verify return code: 21 (unable to verify the first certificate)
C/H
2017. 3. 6. 08:30
- Certificate configuration check
- SSL 인증서 적용 확인
- nginx 인증서 설정 SW_Development
- Nginx doesn't send certificate chain
- Steps to install a Comodo PositiveSSL certificate with Nginx.
- Certificate Installation : NGINX
- SSLのVerifyで「 21 (unable to verify the first certificate)」エラーが発生する。
- “verify error:num=20” when connecting to gateway.sandbox.push.apple.com
- NGINX SSL 인증서 설치/적용 가이드
- SSL Checker SSL 인증서 설치 적용 테스트 확인
- Intermediate-Chain 중개/체인 인증서 설치 확인 방법
- Convert Certificate Format SSL 인증서 변환 가이드
- Nginx 에 코모도 Positive SSL 적용기
- OpenSSL: socket: Connection refused connect:errno=111
인증서 파일 설명
파일 종류 설명 .crt - 서버응답인증서 (CA에서 발급된 인증서 PEM 텍스트) .key - CSR 자동생성 신청시, 같이 자동 생성된 개인키 (SHA1 알고리즘, PEM 텍스트, 패스워드 없음) .pfx - 개인키+서버응답인증서 패키징된 인증서 (설치시 암호 필요) .pfx.txt - pfx 를 이용해서 인증서 설치시 필요한 해제 암호 .Chain.zip - 설치가 필수인 체인 인증서 모음 압축 파일 주요 상품별 체인 인증서 [Positive 계열 상품] 루트 인증서 : AddTrustExternalCARoot.crt 체인 인증서 : PositiveSSLCA2.crt [Comodo 계열 상품] 루트 인증서 : AddTrustExternalCARoot.crt 체인 인증서 : COMODOSSLCA.crt [Free 30 Days 상품] 루트 인증서 : AddTrustExternalCARoot.crt 체인 인증서 : UTNAddTrustSGCCA.crt 체인 인증서 : ComodoUTNSGCCA.crt 체인 인증서 : EssentialSSLCA_2.crt [EV 상품] 루트 인증서 : AddTrustExternalCARoot.crt 체인 인증서 : COMODOAddTrustServerCA.crt 체인 인증서 : COMODOExtendedValidationSecureServerCA.crt
Nginx SSL 설정
ssl on; ssl_certificate "/etc/pki/nginx/domain.crt"; ssl_certificate_key "/etc/pki/nginx/domain.ca2"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
인증서 테스트
openssl s_client -showcerts -connect chat.domaon.com:443 depth=0 /OU=Domain Control Validated/OU=Hosted by Korea Information Certificate Authority, Inc./OU=PositiveSSL Wildcard/CN=*.happytalk.io verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 /OU=Domain Control Validated/OU=Hosted by Korea Information Certificate Authority, Inc./OU=PositiveSSL Wildcard/CN=*.happytalk.io verify error:num=27:certificate not trusted verify return:1 depth=0 /OU=Domain Control Validated/OU=Hosted by Korea Information Certificate Authority, Inc./OU=PositiveSSL Wildcard/CN=*.happytalk.io verify error:num=21:unable to verify the first certificate verify return:1 ... Verify return code: 21 (unable to verify the first certificate) ... cat cert.pem RootCA.crt ChainCA.crt > new_cert.pem systemctl restart nginx.service; systemctl status nginx.service; openssl s_client -showcerts -connect chat.domaon.com:443 ... Verify return code: 21 (unable to verify the first certificate) ... cat doamin.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > domain.ssl.crt systemctl restart nginx.service; systemctl status nginx.service; openssl s_client -showcerts -connect chat.domaon.com:443 ... Verify return code: 21 (unable to verify the first certificate) ... cat domain.crt rsa-dv.chain-bundle.pem AddTrustExternalCARoot.crt > domain.ca2 #설정오류 cat domain.key rsa-dv.chain-bundle.pem AddTrustExternalCARoot.crt > domain.ca2 cat domain.crt domain.key rsa-dv.chain-bundle.pem AddTrustExternalCARoot.crt > domain.ca2 # https://www.securesign.kr/tools/online-check-ssl-installation? 에서 확인 결과 Chain Trusted 오류 확인 # 아....... 음...... 이건 좀 더 시간이 필요할 거 같다. # 결국 클라이언트에서 인증서 검증을 하지 않는 옵션사용
프로젝트 시간이 더 필요해...
반응형