OpenVPN : 체인의 자체 서명 인증서 항목은 다음과 같습니다. ca

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”는 “버지니아”와 정확히 같지 않습니다.



답변

이 스레드를 완전히 폐쇄하려면 실제로 문제가 발생했습니다. 내가받은 “ca.crt”( “버지니아”)는 실제로 내 동료가 사용하고있는 ( “VA”) 것이 아니며 당시에는 아무도 눈치 채지 못했습니다.

그래서 … 기본적으로 (그리고 순전히 평신도의 관점에서) VPN은 찾을 것으로 예상되는 ca.crt를 찾는 권위 체인을 걸어 가려고했지만 결코 거기에 없었기 때문에 결코 찾지 못했습니다.

그리고 이것은 암호화 시스템이 잘 알려진 훌륭한 메시지 중 하나입니다 . 완전히 정확하지만 아직 시작되지 않은 사람들에게는 완전히 신비합니다. (그리고 공정하게 말하면, 암호화 시스템은 그들이 말하는 사람이 멋진 앨리스 또는 밥이 아니라 악한 이브 라고 가정하기 때문에 어떤 것에 대한 정보를 공개하는 것을 좋아하지 않습니다 .)