OS X 10.11 CardDAV với chứng chỉ tự ký


0

Máy chủ CardDAV tôi đang cố gắng kết nối để sử dụng chứng chỉ tự ký. Thật không may, tôi không thể làm bất cứ điều gì về nó.

Trong các phiên bản OS X trước, khi kết nối với máy chủ này, hệ thống hỏi tôi có muốn kết nối bằng chứng chỉ không an toàn này không. Tôi có thể chấp nhận và tiếp tục.

Khi thử điều tương tự trong phiên bản OS X hiện tại, điều này không hoạt động. Danh bạ.app chỉ hiển thị một vấn đề kết nối.

Khi nhìn vào nhật ký trong Console, tôi có thể thấy lỗi này:

02/12/15 00:55:39,637 Contacts[39186]: [CardDAVPlugin-ERROR] -getPrincipalInfo:[_controller discoverServer https://user@host:port(null)] 
    Error Domain=NSURLErrorDomain
    Code=-1200
    "An SSL error has occurred and a secure connection to the server cannot be made."
    UserInfo={
        _kCFStreamErrorCodeKey=-9801,
        NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?
    }

Không cảnh báo, không yêu cầu tiến hành dù sao.

Bây giờ tôi nghĩ rằng tôi có thể tải xuống chứng chỉ, thêm nó vào móc khóa và đặt niềm tin mặc định thành "Luôn tin tưởng".

echo -n | openssl s_client -connect host:port | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > carddav.cer

Nhận chứng chỉ, thêm nó vào móc khóa, đặt niềm tin và thử lại - bummer: Cùng một lỗi một lần nữa và vẫn không có hộp thoại xác nhận.

Bây giờ câu hỏi của tôi là: Có cách nào để cho phép Danh bạ.app kết nối với máy chủ của tôi hoặc để mang lại hộp thoại xác nhận không?

CHỈNH SỬA

Theo yêu cầu, đây là chi tiết kết nối SSL của tôi:

CONNECTED(00000003)
depth=0 CN = , O = , OU = , ST = , C = , L = , emailAddress = 
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = , O = , OU = , ST = , C = , L = , emailAddress = 
verify return:1
---
Certificate chain
 0 s:/CN=/O=/OU=/ST=/C=/L=/emailAddress=
   i:/CN=/O=/OU=/ST=/C=/L=/emailAddress=
---
Server certificate
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
subject=/CN=/O=/OU=/ST=/C=/L=/emailAddress=
issuer=/CN=/O=/OU=/ST=/C=/L=/emailAddress=
---
No client certificate CA names sent
---
SSL handshake has read 1198 bytes and written 658 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : SSLv3
    Cipher    : AES256-SHA
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1449069604
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
DONE

Là chứng chỉ tự ký bằng giao thức SSL hoặc TLS? Phiên bản nào của SSL hoặc TLS? Bộ mật mã nào đang được sử dụng? Bạn có thể cung cấp đầu ra của openssl s_client -connect host:port
Khürt Williams

Câu trả lời:


1

Theo phần Cải tiến bảo mật của ghi chú trước khi phát hành OS X 10.11 trên Trang web dành cho nhà phát triển của Apple

Ứng dụng bảo mật vận tải (ATS)

Ứng dụng bảo mật vận chuyển (ATS) thực thi các thực tiễn tốt nhất trong các kết nối an toàn giữa ứng dụng và mặt sau của ứng dụng. ATS ngăn chặn tiết lộ ngẫu nhiên, cung cấp hành vi mặc định an toàn và dễ dàng chấp nhận; mặc định nó cũng được bật trong OS X v10.11 và iOS 9. Bạn nên áp dụng ATS càng sớm càng tốt, bất kể bạn có đang tạo một ứng dụng mới hay cập nhật ứng dụng hiện có hay không.

Nếu bạn đang phát triển một ứng dụng mới, bạn nên sử dụng HTTPS độc quyền. Nếu bạn có một ứng dụng hiện có, bạn nên sử dụng HTTPS càng nhiều càng tốt ngay bây giờ và tạo một kế hoạch để di chuyển phần còn lại của ứng dụng càng sớm càng tốt. Ngoài ra, giao tiếp của bạn thông qua các API cấp cao hơn cần được mã hóa bằng TLS phiên bản 1.2 với tính bảo mật chuyển tiếp. Nếu bạn cố gắng tạo một kết nối không tuân theo yêu cầu này, sẽ xảy ra lỗi. Nếu ứng dụng của bạn cần đưa ra yêu cầu đối với một miền không an toàn, bạn phải chỉ định miền này trong tệp Info.plist của ứng dụng.


Là một nhà phát triển tôi biết về điều đó. Nhưng đây không phải là một câu hỏi đang phát triển. Tôi đang hỏi về một hệ thống cung cấp dịch vụ. Tôi hy vọng rằng OS X vẫn tương thích xuống hoặc có thể có khả năng đạt được điều đó.
Julian F. Weinert
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.