OpenVPN: chứng chỉ tự ký trong chuỗi


9

Tôi đang cố gắng không thành công để sử dụng TunnelBlick(ứng dụng khách OS / X OpenVPN 2.2.1 nổi tiếng) để kết nối bằng chứng chỉ. Đây là thông báo lỗi (đã khử trùng) tôi nhận được:

2012-01-11 11:18:26 TLS: Gói ban đầu từ **. **. **. **: 1194, sid = 17a4a801 5012e004
2012-01-11 11:18:26 XÁC NHẬN XÁC NHẬN: độ sâu = 1, lỗi = chứng chỉ tự ký trong chuỗi chứng chỉ: / C = US / ST = ** / L = ** / O = ** / CN = ** / email Địa chỉ = **
2012-01-11 11:18:26 TLS_ERROR: BIO đọc tls_read_plaintext lỗi: error: 14090086: Các thói quen SSL: SSL3_GET_SERVER_CERTIFICATE: xác minh chứng chỉ không thành công
2012-01-11 11:18:26 Lỗi TLS: Đối tượng TLS -> lỗi đọc bản rõ đến
2012-01-11 11:18:26 Lỗi TLS: Bắt tay TLS không thành công
2012-01-11 11:18:26 TCP / UDP: Đóng ổ cắm

Bây giờ, đây là chà. Tôi tạo ra một CSR bản thân mình để yêu cầu chứng chỉ này, bằng cách sử dụng ca.crt tập tin cung cấp cho tôi bởi phía bên kia (trong thực tế, họ đã làm điều đó hai lần chỉ để chắc chắn).

Các mục liên quan trong cấu hình máy khách là:

ca   ca.crt
cert my.crt
key  my.key

và, hơn nữa ... Tôi có thể xác minh các khóa theo cách này:

openssl xác minh -CAfile ca.crt my.crt 
my.crt: OK

Được rồi, vì vậy bây giờ tôi hoàn toàn bí ẩn và bối rối. Tại thời điểm này, tôi biết rằng CSR và khóa được tạo bằng CSR thích hợp. Trong thực tế, đây là chính lệnh đã làm điều đó:

openssl req -newkey rsa:2048 -new -out my.csr -keyout my.key

Tôi cũng biết để làm điều này:

openssl x509 -subject -issuer -noout -in ca.crt

...

(nháy mắt!)

Có phải tôi vừa tìm thấy nó?

Đầu ra của lệnh đó trông như thế này: (được chỉnh sửa phần nào)

chủ đề = / C = US / ST = VA / L = ** / O = ** / CN = ** CA / emailAddress = **
tổ chức phát hành = (giống nhau)

trong khi đó trong thông báo lỗi từ OpenVPN, ST = không hoàn toàn giống nhau:

XÁC NHẬN LRI: độ sâu = 1, lỗi = chứng chỉ tự ký trong chuỗi chứng chỉ: / C = US / ST = Virginia / L = ** / O = ** / CN = ** / emailAddress = **

"VA" không chính xác bằng "Virginia."


2
Hãy thử openssl s_client -connect host:port -showcertsvà so sánh dấu vân tay của chứng chỉ nhận được với openssl x509 -noout -text -in ca.crt.
Shane Madden

Câu trả lời:


7

Chỉ cần mang lại sự đóng cửa hoàn toàn cho chủ đề này: đó thực sự là vấn đề. "Ca.crt" mà tôi đã nhận được ("Virginia") thực tế KHÔNG phải là cái mà đồng nghiệp của tôi đang sử dụng ("VA") và không ai trong chúng tôi nhận thấy vào thời điểm đó.

Vì vậy, ... về cơ bản (và hoàn toàn theo thuật ngữ của giáo dân) VPN đã cố gắng tiến hành chuỗi thẩm quyền tìm kiếm ca.crt mà nó dự kiến ​​sẽ tìm thấy, nhưng nó không bao giờ làm được (vì nó không ở đó).

Và, đây là một trong những thông điệp tuyệt vời mà các hệ thống tiền điện tử rất nổi tiếng vì: hoàn toàn chính xác, và hoàn toàn bí ẩn đối với người không quen biết. (Và, để công bằng, hệ thống mật mã không thích tiết lộ thông tin về bất cứ điều gì, vì họ đoán người mà họ đang nói đến là chắc chắn ác Eve , không đẹp Alice hoặc Bob.)


Công bằng mà nói, tôi không tin rằng điều này có liên quan đến chuỗi CA và hơn thế nữa là thực tế rằng đó là một CA khác ở nơi đầu tiên, và do đó tự động không đáng tin cậy. OpenSSL không cần phải đi bộ nhiều. Có lẽ đó là những gì bạn có ý nghĩa mặc dù.
gparent
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.