"x509: 인증서는 레거시 일반 이름 필드에 의존합니다." 오류로 인해 Go TLS 연결 실패
MongoDB에 TLS 연결을 설정하려고 할 때 Go를 사용하면 "연결 실패: x509: 인증서가 레거시 일반 이름 필드에 의존합니다." 오류가 발생할 수 있습니다. 이 문제는 인증서 ID에 대해 CN(일반 이름) 필드보다 SAN(주체 대체 이름)을 우선시하도록 업데이트된 인증서 유효성 검사에서 발생합니다.
근본 원인:
TLS 인증에 사용되는 인증서는 호스트 식별에 더 안전한 것으로 간주되는 SAN 대신 레거시 일반 이름 필드를 사용합니다. 현재 버전의 Go에는 SAN 사용을 강제하는 더 엄격한 인증서 유효성 검사가 있습니다.
해결책:
이 문제를 해결하려면 다음을 확인하여 인증서 자체를 수정해야 합니다. SAN이 포함되어 있다는 것입니다. 여기에는 적절한 SAN 필드를 사용하여 새 인증서를 생성하거나 이를 포함하도록 기존 인증서를 재구성하는 작업이 포함됩니다.
소스 수정:
새 인증서 검사:
다음 명령을 사용하여 검사하여 새로 생성된 인증서에 SAN 필드가 있는지 확인합니다.
openssl x509 -in server.crt -noout -text
참고:
인증서를 생성한 후 SAN을 사용하면 Go 코드와 함께 이를 사용하여 "x509: 인증서는 레거시 일반 이름 필드에 의존합니다" 오류가 발생하지 않고 TLS 연결을 설정할 수 있습니다. 새 인증서가 사용되도록 하려면 Go 코드에서 인증서 파일을 업데이트하고 연결 프로세스를 다시 시작해야 할 수도 있습니다.
위 내용은 \'x509: 인증서는 레거시 일반 이름 필드\'를 사용하므로 My Go TLS 연결이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!