2012-07-26 42 views
30

Với việc phát hành mới của OS X 10.8, các Gatekeeper sẽ bật lên những cảnh báo sau đây, khi bạn cố gắng để bắt đầu một applet Java ký:OS X 10.8 Gatekeeper và Java applet

enter image description here

Các applet đã được đã ký bằng chứng chỉ ký mã hợp lệ và sẽ hoạt động chính xác trên các nền tảng khác cũng như các phiên bản trước của OS X. Nếu tôi thay đổi "Cho phép tải xuống ứng dụng từ" thành "Anywhere", nó hoạt động chính xác.

Theo như tôi có thể tìm ra "Chữ ký kỹ thuật số không thể được xác minh", thực sự có nghĩa là "chữ ký chưa được tạo bằng ID nhà phát triển Mac".

Vì vậy: Tôi có thể ký ứng dụng Java với ID nhà phát triển Mac không? Tôi có thể ký tên bằng cả ID nhà phát triển Mac và chứng chỉ ký mã chuẩn không? Có cách tiếp cận tốt hơn không?

+2

Nhân tiện, tôi nghĩ điều này là ngu ngốc, vì Applet được sử dụng trong trình duyệt web và chúng độc lập với nền tảng. Đó là một sự xấu hổ của Apple hoạt động khác với phần còn lại của thế giới (OS) ... – tiktak

+1

@tiktak Đồng thời, Java đã chứng tỏ là một nguồn rắc rối tốt cho Apple. Đừng lo lắng, điều tương tự cũng xảy ra đối với Flash. Vì vậy, ám ảnh của họ có một số mặt đất trong thực tế. –

Trả lời

10

Dưới đây là câu trả lời mà tôi nhận được từ Apple phát triển Hỗ trợ kỹ thuật:

Cảm ơn bạn vì sự kiên nhẫn của bạn trong khi chúng tôi điều tra này.

Cảnh báo được trình bày bởi Java chứ không phải bởi Gatekeeper. Tuy nhiên, bạn đang chính xác rằng logic xác minh đã được thay đổi trên OS X Mountain Lion.

Trong một thời gian, người dùng đã được trình bày cảnh báo này khi chạy một ứng dụng đã ký, vì các ứng dụng đã ký có thể thoát khỏi hộp cát Java và thực hiện các thay đổi bất ngờ cho hệ thống của người dùng. Người dùng có tùy chọn để chọn hộp "Cho phép tất cả các ứng dụng từ" nếu họ tin tưởng nhà phát triển và do đó họ sẽ không thấy cảnh báo nữa trừ khi họ xóa mục khỏi tùy chọn Bảo mật Java.

Có gì thay đổi trong Mountain Lion là cảnh báo xác minh tại về cơ bản có nghĩa là chữ ký của Applet là hợp lệ, nhưng applet là từ một nhà phát triển không xác định và đang cố gắng leo thang đặc quyền khi Gatekeeper được kích hoạt và người sử dụng phải quyết định có cho phép điều đó không.

"Nhà phát triển không xác định" nghĩa là nguồn không phải là Cửa hàng ứng dụng Mac hoặc nhà phát triển được xác định ID nhà phát triển. Lưu ý rằng các applet Java không thể tham gia vào chương trình ID nhà phát triển.

Nếu Gatekeeper được thiết lập để tin tưởng các ứng dụng chỉ Mac App Store, sau đó bạn sẽ không thể thêm applet vào danh sách tin cậy trừ khi bạn thêm chứng chỉ Applet để keychain sử dụng sổ xuất hiện, sau khi nhấp Hiện Chi tiết.

Các ứng dụng chưa được ký tên không được phép thoát khỏi hộp cát Java.

Điều này phù hợp với việc xử lý các ứng dụng Mac gốc của Gatekeeper; ứng dụng từ nhà phát triển không xác định không được phép chạy theo mặc định.

Nếu bạn muốn xem từ ngữ của cảnh báo đã thay đổi, vui lòng gửi báo cáo lỗi tại https://developer.apple.com/bugreporter.

Điều này về cơ bản có nghĩa là không có cách nào để ký vào applet theo cách mà bạn có thể tránh thông báo này được hiển thị. Tôi đã gửi một báo cáo lỗi cho Apple nói rằng tôi muốn từ ngữ của thông điệp được thay đổi không chứa các từ như UNIDENTIFIED, UNVERIFIED, INSECURE ... bởi vì đó là toàn bộ việc ký các applet, để người dùng có thể cảm thấy ấm áp và ấm cúng bên trong khi họ cần cho phép applet chạy, để đảm bảo với họ rằng những gì họ sắp cho phép là OK và được xác minh và nó sẽ không gây hại cho máy tính của họ, và chúng tôi cần hiển thị nó trên một nơi mà nó sẽ được nhìn thấy, để chọc mắt với nó.

3

Bạn đã trả lời câu hỏi của riêng mình. Gatekeeper coi các chứng chỉ/chữ ký không được Apple cấp không đáng tin cậy.

Apple Documentation sẽ cho bạn biết cách xuất chứng chỉ của mình. Sau đó bạn có thể sử dụng nó như bình thường. Lệnh codesign cũng có thể thực hiện thủ thuật.

+0

Có vẻ như Gatekeeper không cố gắng xác minh chữ ký jar, nhưng nó đang xem xét một thuộc tính mở rộng HFS để xác minh id nhà phát triển Apple đã phát hành. http://stackoverflow.com/a/17222479/101151 Bạn đã thử nghiệm giải pháp của mình hay là suy đoán? – jla

Các vấn đề liên quan