Làm cách nào để Pidgin luôn chấp nhận chứng chỉ hết hạn?


8

Công việc của tôi sử dụng máy chủ XMPP cục bộ (Wildfire, hiện được gọi là Openfire ). Khi sử dụng ứng dụng khách Pidgin, nó luôn hỏi tôi có nên chấp nhận chứng chỉ (hết hạn) không hợp lệ không.

nhập mô tả hình ảnh ở đây

Tôi muốn có được Pidgin để luôn chấp nhận nó mà không cần hỏi tôi. Làm thế nào tôi có thể làm điều này mà không cần cài đặt chứng chỉ mới trên máy chủ XMPP?

Tôi đã cố gắng nhập chứng chỉ vào cả cửa hàng Cá nhân và cửa hàng Root đáng tin cậy, nhưng tôi vẫn nhận được cùng một lời nhắc. Chứng chỉ cũng được lưu trữ %APPDATA%\.purple\certificates\x509\tls_peers, nhưng tôi vẫn nhận được lời nhắc.

Đây là nhật ký gỡ lỗi khi kết nối:

Pidgin Debug Log : 10/4/2016 12:05:16 PM
(12:05:05) account: Connecting to account example@192.168.1.21/.
(12:05:05) connection: Connecting. gc = 04528D78
(12:05:05) dnssrv: querying SRV record for 192.168.1.21: _xmpp-client._tcp.192.168.1.21
(12:05:05) dnssrv: Couldn't look up SRV record. The filename, directory name, or volume label syntax is incorrect. (123).
(12:05:05) dnsquery: Performing DNS lookup for 192.168.1.21
(12:05:05) dnsquery: IP resolved for 192.168.1.21
(12:05:05) proxy: Attempting connection to 192.168.1.21
(12:05:05) proxy: Connecting to 192.168.1.21:5222 with no proxy
(12:05:05) proxy: Connection in progress
(12:05:05) proxy: Connecting to 192.168.1.21:5222.
(12:05:05) proxy: Connected to 192.168.1.21:5222.
(12:05:05) jabber: Sending (example@192.168.1.21): <?xml version='1.0' ?>
(12:05:05) jabber: Sending (example@192.168.1.21): <stream:stream to='192.168.1.21' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>
(12:05:05) jabber: Recv (579): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="192.168.1.21" id="da08260e" xml:lang="en" version="1.0"><stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism><mechanism>CRAM-MD5</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>ANONYMOUS</mechanism></mechanisms><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/></stream:features>
(12:05:05) jabber: Sending (example@192.168.1.21): <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
(12:05:05) jabber: Recv (50): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
(12:05:05) nss: SSL version 3.1 using 128-bit AES with 160-bit SHA1 MAC
Server Auth: 2048-bit RSA, Key Exchange: 1024-bit DHE, Compression: NULL
Cipher Suite Name: TLS_DHE_RSA_WITH_AES_128_CBC_SHA
(12:05:05) nss: subject=CN=Unknown,OU=Unknown,O=REDACTED,L=REDACTED,ST=REDACTED,C=US issuer=CN=Unknown,OU=Unknown,O=REDACTED,L=REDACTED,ST=REDACTED,C=US
(12:05:05) certificate/x509/tls_cached: Starting verify for 192.168.1.21
(12:05:05) certificate/x509/tls_cached: Certificate 192.168.1.21 expired at Mon Aug 29 09:54:35 2016

(12:05:05) certificate/x509/tls_cached: Checking for cached cert...
(12:05:05) certificate/x509/tls_cached: ...Found cached cert
(12:05:05) nss/x509: Loading certificate from C:\Users\example\AppData\Roaming\.purple\certificates\x509\tls_peers\192.168.1.21
(12:05:05) certificate/x509/tls_cached: Peer cert matched cached
(12:05:07) util: Writing file accounts.xml to directory C:\Users\example\AppData\Roaming\.purple
(12:05:07) util: Writing file C:\Users\example\AppData\Roaming\.purple\accounts.xml
(12:05:07) util: Writing file blist.xml to directory C:\Users\example\AppData\Roaming\.purple
(12:05:07) util: Writing file C:\Users\example\AppData\Roaming\.purple\blist.xml
(12:05:07) certificate/x509/tls_cached: User ACCEPTED cert
Caching first in chain for future use as 192.168.1.21...
(12:05:07) nss/x509: Exporting certificate to C:\Users\example\AppData\Roaming\.purple\certificates\x509\tls_peers\192.168.1.21
(12:05:07) util: Writing file C:\Users\example\AppData\Roaming\.purple\certificates\x509\tls_peers\192.168.1.21
(12:05:07) nss: Trusting CN=Unknown,OU=Unknown,O=REDACTED,L=REDACTED,ST=REDACTED,C=US
(12:05:07) certificate: Successfully verified certificate for 192.168.1.21

Bạn đã thử xem chứng chỉ và cài đặt nó vào kho chứng chỉ Windows chưa?
Evan Darwin

Có, nhưng Pidgin ném thông báo lỗi tương tự.

2
Mở Debug Window(Trợ giúp -> Cửa sổ gỡ lỗi), kết nối với máy chủ và chọn Accepttrong hộp thoại chứng chỉ. Có thể có một số thông báo liên quan đến chứng chỉ trong cửa sổ Debug. Bạn có thể đính kèm nhật ký vào câu hỏi ban đầu của bạn. Giấy chứng nhận được chấp nhận nên được lưu trữ trong %APPDATA%\.purple\certificates\x509\tls_peers. Hãy thử xem ở đó nếu có tệp có cùng tên với máy chủ của bạn.
ge0rdi

1
Tôi có tin xấu. Tôi đang xem các nguồn Pidgin (nhật ký của bạn đã giúp định hướng rất nhiều trong dòng mã), nhưng dường như các chứng chỉ đã hết hạn (hoặc chưa hợp lệ) luôn có dấu nhắc. Tất cả các lỗi chứng chỉ khác không được báo cáo nếu chứng chỉ đã được chấp nhận. Tôi đề nghị báo cáo vấn đề này cho các nhà phát triển Pidgin tại đây .
ge0rdi

1
Trong thực tế, có vấn đề với các chứng chỉ hết hạn được báo cáo trong hệ thống bán vé Pidgin . Thông thường câu trả lời là chứng chỉ của máy chủ phải được sửa.
ge0rdi

Câu trả lời:


7

Thật không may, không thể chấp nhận vĩnh viễn chứng chỉ hết hạn (ít nhất là không có trong Pidgin 2.11.0, phiên bản mới nhất tại thời điểm này).

Có nhiều báo cáo về vấn đề này trong hệ thống theo dõi vấn đề chính thức của Pigdin . Câu trả lời thông thường là chứng chỉ của máy chủ phải được sửa.

Người ta cũng có thể xác nhận nó trong các nguồn Pidgin :
Xác minh chứng chỉ bắt đầu bằng x509_tls_cached_start_verify. Đối với chứng chỉ hết hạn có cờ PURPLE_CERTIFICATE_EXPIREDđặt.
Nếu chứng chỉ được tìm thấy trong bộ nhớ cache x509_tls_cached_cert_in_cacheđược gọi. Nó xác minh rằng dấu vân tay chứng chỉ thực tế khớp với một trong bộ nhớ cache và các cuộc gọi x509_tls_cached_complete.
Hàm này thực hiện một trong các thao tác sau:

  • thông báo cho người dùng rằng chứng chỉ không hợp lệ (nếu có một số vấn đề về chứng chỉ gây tử vong)
  • cho phép người dùng quyết định chấp nhận / từ chối chứng chỉ (nếu có vấn đề không nghiêm trọng; đây là trường hợp chứng chỉ hết hạn)
  • tiếp tục mà không có bất kỳ lời nhắc nào nếu không có vấn đề với chứng chỉ

Không có cách nào để bỏ qua cảnh báo về chứng chỉ đã hết hạn (ngoài việc sửa lỗi chứng chỉ).


0

Những gì @ ge0rdi nói là đúng nhưng bạn có thể thử tải xuống chứng chỉ SSL bằng tay. Làm điều này sẽ làm cho pidgin bắt đầu mà không cần xin phép :)

Sử dụng lệnh sau:

~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER 

Nếu thất bại, hãy nối lệnh với -starttls xmpp như sau:

~/.purple/certificates/x509/tls_peers$ openssl s_client -connect YOUR_SERVER:PORTNUMBER -starttls xmpp

Đặt tệp vào thư mục sau:

~/.purple/certificates/x509/tls_peers

Ghi chú! Đảm bảo tên tệp là tên DNS của máy chủ.

BIÊN TẬP:

Đoán xem ai vừa nhận thấy bạn sử dụng máy Windows ... ~ / là phân vùng nhà của người dùng Linux. Theo trang này , cửa sổ tương đương là% APPDATA%.


Chứng chỉ đã có sẵn, nhưng Pidgin vẫn hỏi tôi có muốn chấp nhận nó mỗi lần không. Đó là trong câu hỏi và trong các ý kiến ​​là tốt.
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.