2011-10-25 19 views
5

Chúng tôi đã sử dụng kho khóa tiêu chuẩn java ($JAVA_HOME/jre/lib/security/cacerts) làm cửa hàng đáng tin cậy cho tomcat. Và máy chủ tomcat đó sẽ liên lạc với một số máy chủ khác. Bản nâng cấp hệ điều hành gần đây (AIX) dường như đã ghi đè lên tệp $JAVA_HOME/jre/lib/security/cacerts và dẫn đến mất chứng chỉ và nhiều vấn đề với ứng dụng được lưu trữ trong tomcat.Thực tiễn không tốt là sử dụng kho khóa tiêu chuẩn Java

Nhìn vào đây là một thực tế tồi để chuyển tiếp trên $ JAVA_HOME/jre/lib/security/cacerts? Cách thay thế (tốt hơn | tiêu chuẩn) để giải quyết tình huống này là gì?

+0

java_home có thể thay đổi tùy theo nền tảng, bạn sẽ muốn tìm hiểu điều đó. Cá nhân tôi sẽ tìm kiếm một thư mục hive khác. – Tim

Trả lời

1

Về những gì có trong tệp cacerts, thực tế không nhất thiết phải tồi tệ hơn là dựa vào chứng chỉ CA mặc định được cài đặt trong hệ điều hành hoặc trình duyệt của bạn, nhưng điều đó không có nghĩa là tuyệt vời.

Sun/Oracle có một chút "lưu ý quan trọng" đâu đó ở giữa các JSSE Reference Guide about this:

LƯU Ý QUAN TRỌNG: Các tàu với một số lượng hạn chế đáng tin cậy gốc giấy chứng nhận trong thư mục/lib/security JDK/tệp cacerts. Vì được ghi lại trong keytool, bạn có trách nhiệm duy trì (nghĩa là, thêm/xóa) các chứng chỉ có trong tệp này nếu bạn sử dụng tệp này làm cửa hàng ủy thác.

Tùy thuộc vào cấu hình chứng chỉ của máy chủ bạn liên hệ, bạn có thể cần phải thêm chứng chỉ gốc bổ sung. Nhận được chứng chỉ gốc cụ thể cần thiết từ nhà cung cấp thích hợp.

Về cấu hình, đối với các ứng dụng cụ thể mà tôi phải cài đặt chứng chỉ CA "cục bộ", tôi thấy ổn định hơn khi sử dụng cửa hàng ủy thác cục bộ (ví dụ: được chỉ định với javax.net.ssl.trustStore).

2

Không chắc chắn, nhưng giả sử giả định của bạn là chính xác, hãy thận trọng khi bạn đặt kho khóa của mình. Tôi mạnh mẽ đề nghị nó được đặt bên trong thư mục Apache.

Theo mặc định trong Websphere keystore hoạt động theo cách này, vì nó mang đến cho JVM riêng của nó :)

+2

GlassFish cũng có kho khóa và cacerts riêng. – Hiro2k

5

Đó không phải là một thực tế xấu nếu bạn có một quá trình xây dựng đó sẽ lặp lại hàng nhập khẩu.

0

Có thực tiễn không tốt để làm điều đó.

Cách tốt nhất là phải hạn chế các chứng chỉ tin cậy của bạn nhiều khi cần.
Vì vậy, bạn nên đã sử dụng kho khóa của riêng bạn chỉ với các chứng chỉ được ứng dụng của bạn tin cậy.

+0

Điều đó vi phạm toàn bộ mục đích của PKI. Ý tưởng là sự hiện diện của rễ tin cậy cho phép một chuỗi tín thác được hình thành để bạn có thể tin tưởng bất kỳ chứng chỉ nào được ký bởi một CA đáng tin cậy. Bạn đang conflating xác thực, đó là những gì PKI và giấy chứng nhận cho, với sự cho phép, đó là một vấn đề miền ứng dụng.Về cơ bản nó bị phá vỡ để kết hợp hai chức năng riêng biệt này. – EJP

+0

@EJP: Khi bạn có điểm cuối chỉ giao tiếp với các thực thể cụ thể trong mạng, tại sao tôi cho phép các chứng chỉ được tin cậy bởi * any * CA được định cấu hình trong hệ thống của tôi (cho dù đó là linux, chứng chỉ của java, chứng chỉ Windows vv)? – Cratylus

0

Bản nâng cấp AIX là bản vá. Mọi bản vá không được xóa/ghi đè dữ liệu người dùng. Tôi sẽ đề nghị người dùng bị ảnh hưởng bởi kiểu mất dữ liệu này yêu cầu IBM sửa chữa thủ tục vá lỗi. Trong khi đó, một bản vá của máy chủ httpd không ghi đè lên/xóa cấu hình mặc dù nó nằm trong thư mục chương trình.

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