TunnelBlick
인증서를 사용하여 연결하기 위해 (잘 알려진 OS / X OpenVPN 2.2.1 클라이언트) 를 사용 하는 데 실패했습니다 . 다음은 수신 된 (위생 된) 오류 메시지입니다.
2012-01-11 11:18:26 TLS : **. **. **. ** : 1194, sid = 17a4a801 5012e004의 초기 패킷 VERIFY ERROR : depth = 1, error = 인증서 체인의 자체 서명 인증서 : / C = US / ST = ** / L = ** / O = ** / CN = ** / emailAddress = ** 2012-01-11 11:18:26 TLS_ERROR : BIO 읽기 tls_read_plaintext 오류 : 오류 : 14090086 : SSL 루틴 : SSL3_GET_SERVER_CERTIFICATE : 인증서 확인 실패 2012-01-11 11:18:26 TLS 오류 : TLS 개체-> 들어오는 일반 텍스트 읽기 오류 2012-01-11 11:18:26 TLS 오류 : TLS 핸드 셰이크 실패 2012-01-11 11:18:26 TCP / UDP : 폐쇄 소켓
자, 여기 문지름이 있습니다. 다른 쪽에서 제공 한 ca.crt 파일을 사용하여이 인증서를 요청 하는 CSR을 직접 생성했습니다 (실제로 두 번만 확인했습니다).
클라이언트 구성의 관련 항목은 다음과 같습니다.
ca ca.crt
cert my.crt
key my.key
그리고 더 나아가 ... 나는 이런 식으로 키를 확인할 수 있습니다.
openssl verify -CAfile ca.crt my.crt
my.crt : 확인
좋아, 이제 나는 철저하게 미스터리를 당했다. 이 시점 에서 CSR과 키가 적절한 CSR을 사용하여 생성되었음을 알고 있습니다. 사실, 여기 를했던 바로 그 명령은 :
openssl req -newkey rsa:2048 -new -out my.csr -keyout my.key
나는 또한 이것을하는 것을 알고 있었다 :
openssl x509 -subject -issuer -noout -in ca.crt
...
(못 본 체하다!)
방금 찾았 어 ?
이 명령의 출력은 다음과 같다 : (약간 수정)
subject = / C = US / ST = VA / L = ** / O = ** / CN = ** CA / emailAddress = ** 발행자 = (동일)
반면 OpenVPN의 오류 메시지에서 ST =는 정확히 동일 하지 않습니다 .
확인 오류 : 깊이 = 1, 오류 = 인증서 체인의 자체 서명 인증서 : / C = US / ST = Virginia / L = ** / O = ** / CN = ** / emailAddress = **
"VA"는 "버지니아"와 정확히 같지 않습니다.
openssl s_client -connect host:port -showcerts
하고받은 인증서의 지문을와 비교하십시오openssl x509 -noout -text -in ca.crt
.