OpenVPN : 체인의 자체 서명 인증서


9

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


2
를 시도 openssl s_client -connect host:port -showcerts하고받은 인증서의 지문을와 비교하십시오 openssl x509 -noout -text -in ca.crt.
Shane Madden

답변:


7

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

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

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


공평하게, 나는 이것이 CA 체인과 관련이 있고 그것이 처음에 다른 CA 였기 때문에 자동으로 신뢰할 수 없다는 사실과 더 관련이 있다고 확신하지 않습니다. OpenSSL은 많은 산책을 할 필요가 없습니다. 어쩌면 그것은 당신이 의미했던 것일 수도 있습니다.
gparent
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.