2015-07-27 20 views
7

Nếu tôi tạo ra một keystore và ký jar với lệnh này:Jarsigner - Điều gì xảy ra sau khi hết hạn

keytool -genkey -alias myalias -keyalg RSA -validity 365 -keystore keys/my.keystore 

jarsigner -verbose -keystore keys/my.keystore -signedjar my_signed.jar my_unsigned.jar myalias 

Sau đó, tôi sẽ tạo ra một giấy chứng nhận đó là 365 ngày hợp lệ. Điều gì xảy ra với tệp jar sau 365 ngày? Vẫn có thể chạy được không? Ai đó vẫn có thể nhận được người ký tên khi anh ta sử dụng "jarsigner verify"? Chứng chỉ có thể được cập nhật như thế nào?

+1

Câu hỏi hay, đề xuất nhanh tạo chứng chỉ với thời hạn hiệu lực rất ngắn và dùng thử. Tôi cũng muốn được xem câu trả lời :) –

+0

Tôi đã tìm thấy câu hỏi và câu trả lời sau cho thấy phụ thuộc của nó, http://stackoverflow.com/questions/5206859/java-trustmanager-behavior-on-expired-certificates –

+0

Có tôi cũng nghĩ về điều đó, nhưng tôi phải ký vào hôm nay :) –

Trả lời

3

Công cụ jarsigner có một tùy chọn (-tsa url) theo http://docs.oracle.com/javase/7/docs/technotes/guides/security/time-of-signing.html

Nếu bạn sử dụng tùy chọn tsa một dấu thời gian ký kết được bao gồm với chữ ký của người jar. Rất nhiều CA cung cấp chứng chỉ ký mã có một máy chủ dấu thời gian như vậy. Khi chữ ký của bình sau đó được xác minh, máy khách sẽ kiểm tra xem chứng chỉ vẫn hợp lệ khi bình đã được ký. Vì vậy, bình có thể vẫn được xác minh ngay cả khi năm đã trôi qua. Bạn nên sử dụng máy chủ thời gian của CA vì dấu thời gian có thể được xác minh (chuỗi chứng chỉ đã được bao gồm - vì bạn đã chọn mã có chứng chỉ từ ca đó)

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