중국 상용 암호(SM) 인증서 구성 후 Nginx 시작 시 SSL_CTX_use_certificate failed 오류가 발생하는 경우 해결 방법은 무엇인가요?
오류 원인
현재 미들웨어 하단의 OpenSSL 라이브러리가 중국 상용 암호 알고리즘(SM2/SM3/SM4)을 지원하지 않기 때문입니다.
표준 OpenSSL은 중국 상용 암호(SM) 인증서 형식을 인식하지 못해 인증서 로딩에 실패합니다.
해결 방안
중국 상용 암호(SM) 버전 OpenSSL(GmSSL, 동쑤오/Tongsuo 등 중국 상용 암호 알고리즘을 지원하는 OpenSSL 브랜치)을 컴파일하여 설치한 뒤, 해당 버전으로 Nginx를 다시 컴파일하여 중국 상용 암호(SM) 인증서 로딩을 지원하도록 해야 합니다.
작업 절차(간략):
- 중국 상용 암호(SM) 버전 OpenSSL을 다운로드하여 컴파일합니다(권장: 동쑤오 Tongsuo)
- 중국 상용 암호(SM) 버전 OpenSSL로 Nginx를 다시 컴파일합니다(
--with-openssl=...가 중국 상용 암호(SM) 버전을 가리키도록 지정) - Nginx 이중 인증서(중국 상용 암호(SM) 인증서 + RSA 인증서)를 구성하여 모든 시나리오에서 호환되도록 합니다