내 응용 프로그램을 TLS 1.2를 사용하는 서버에 연결하려고합니다. 서버가 이미 장치에 설치되어있는 자체 서명 된 CA 인증서로 서명 된 인증서를 사용하고 있습니다 (CA 인증서를 전자 메일로 보내서 탭한 후 설정 -> 일반 -> 프로파일 아래에 표시됨). 이것은 이전에 내 응용 프로그램에서 작동했지만 우리는 사용하고있는 CA 인증서를 변경하여 서버의 인증서도 업데이트했습니다. 이제 SSL 오류가 발생합니다.왜 서버 인증서가 거부됩니까?
내가보고있는 오류는 클라이언트에서 SSLHandshake
로 전화 할 때 errSSLXCertChainInvalid
입니다. 내가 알 수있는 한, 서버 인증서가 유효해야합니다. openssl verify -CAfile ca-cert.pem server-cert.pem
은 OK
을 반환하고 ca-cert.pem은 장치에 설치된 것과 동일한 CA 인증서입니다.
아이디어가 있으십니까? 감사!
errSSLXCertChainInvalid
— The peer has an invalid certificate chain; for example, signature verification within the chain failed, or no certificates were found.
을 그리고 당신은 SSLSetPeerDomainName
를 사용하는 경우 :
감사합니다. CA 인증서 프로필에 문제가있는 것 같습니다. 삭제 후 인증서 파일을 다시 다운로드하면 연결이 작동합니다. 아마도 잘못된 SSL 형식 파일에서 CA 인증서를 설치했을 것입니다. CA 인증서 만있는 PEM 파일이 올바른 프로파일을 설치 한 것으로 보입니다. – Greg