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."
openssl s_client -connect host:port -showcerts
và so sánh dấu vân tay của chứng chỉ nhận được vớiopenssl x509 -noout -text -in ca.crt
.