2009-03-19 28 views
9

Tôi không thể tin rằng tôi là người duy nhất chạy lên chống lại vấn đề này. Tôi đã googling trong nhiều giờ và đã không có bất kỳ may mắn. Tài liệu bảo mật Java dường như không giải quyết triệt để các chứng chỉ PKCS12.Làm thế nào để thiết lập Java để sử dụng chứng chỉ người dùng cụ thể cho Eclipse?

Tôi đang cố gắng thiết lập Java cho chứng chỉ PKCS12 cụ thể của người dùng. Trong số những thứ khác, điều này sẽ được sử dụng để, trong Eclipse, tôi có thể truy cập vào một máy chủ Trac được xác thực thông qua các chứng chỉ. Tôi đang sử dụng plugin tích hợp Trac Mylyn cho nhật thực.

Đây là thiết lập:

  • sử dụng danh bạ nhà đang ở/home
  • đa người dùng gắn ở/trung tâm
  • mỗi người dùng có một giấy chứng nhận cá nhân tại địa chỉ: ~/user.p12
  • mật khẩu cho chứng chỉ cá nhân là: pass1234
  • mật khẩu người dùng được lưu trữ trong tệp 0400 tại ~/password.txt
  • một cửa hàng tin cậy chỉ đọc cho ca là tại địa chỉ: /central/ca.jks
  • không có mật khẩu cho truststore
  • JDK 1.6 lắp đặt tại /central/jdk_1.6.0
  • Eclipse 3.4 lắp đặt tại /central/eclipse_3.4.0
  • JAVA_HOME = /central/jdk_1.6.0
  • JAVA_HOME được thiết lập đến vị trí JDK vì Eclipse cần này
  • ECLIPSE_HOME =/trung tâm/eclipse_3.4.0
  • JRE sống tại $ JAVA_HOME/jre
  • mỗi người dùng có một ~/.ja tập tin va.policy
  • có một máy chủ trac chạy ở https://trac.internal/trac
  • server trac xác thực sử dụng giấy chứng nhận

Bây giờ, tôi muốn để có thể có mỗi người dùng chỉ cần sửa đổi một số tập tin mà họ sở hữu (như ví dụ như tập tin ~/.java.policy) và có thể khởi chạy ứng dụng Eclipse trung tâm và truy cập kho lưu trữ Trac. Có vẻ đơn giản là đủ.

Ngay bây giờ, cách duy nhất tôi có thể có được điều này để làm việc là để chỉnh sửa các tập tin $ ECLIPSE_HOME/eclipse.ini và thêm

-Djavax.net.ssl.keyStore="/home/user/user.p12" 
-Djavax.net.ssl.keyStoreType="PKCS12" 
-Djavax.net.ssl.keyStorePassword="pass1234" 
-Djavax.net.ssl.trustStore="/central/ca.jks" 

Ok, mà làm việc, nhưng có hai vấn đề với nó:

  • Mỗi người dùng phải cài đặt ecipse của riêng họ. (hoặc có thể đọc nhật thực đọc từ tập tin người dùng?)
  • Đây là Eclipse cụ thể, cuối cùng tôi muốn có điều này như là một cấu hình Java.

Ngoài ra, tôi nhớ từ một số thời gian trở lại mà bạn có thể chỉnh sửa $ JAVA_HOME/jre/lib/security/file java.security và thêm

keystore=/home/user/user.p12 
keystore.type=PKCS12 
keystore.password=pass1234 
truststore=/central/ca.jks 

Nhưng Eclipse dường như không nhận thấy lên. Có thể vì JAVA_HOME của tôi trỏ đến JDK chứ không phải JRE lồng nhau của JDK?

Tôi đã nhìn thấy các Java PKCS#11 Reference tham chiếu đến các thuộc tính sau: keyStoreURL = "NONE" keyStoreType = "PKCS11" keyStorePasswordURL = some_pin_url

Có một tài liệu tham khảo tôi thấy những gì đã nói bạn có thể chỉnh sửa ~/.java.policy tệp để bao gồm:

keyStore "file:///home/user/user.p12", "PKCS12", "SunJSSE"; 
keyStorePasswordUrl "file:///home/user/password.txt"; 

Nhưng điều đó cũng không được chọn. Có lẽ nó thực sự làm việc và nó không nhận được đọc cho cùng một lý do tập tin java.security không hoạt động, hoặc có thể nó chỉ không làm việc ở tất cả.

Một số thuộc tính hệ thống tôi đã nhìn thấy:

javax.net.ssl.keyStore="/home/user/user.p12" 
javax.net.ssl.keyStoreType="PKCS12" 
javax.net.ssl.keyStorePassword="password" 
javax.net.ssl.keyStoreProvider="SunJSSE" 
javax.net.ssl.trustStore="/home/user/ca.jks" 
javax.net.ssl.trustStoreType="JKS" 
javax.net.ssl.trustStorePassword="" 
javax.net.ssl.trustStoreProvider="Sun" 

Vì vậy, ngay bây giờ, tôi đoán tôi bị mắc kẹt với việc mỗi người dùng để có intall Eclipse của riêng mình. Tôi biết nó có vẻ giống như một thiết lập phức tạp, nhưng điều này không thực sự liên quan gì đến Eclipse như thiết lập chứng chỉ ... nó thực sự là một thiết lập Java cho các chứng chỉ người dùng cụ thể.

Bất kỳ ý tưởng nào?

Trả lời

5

Sử dụng user-specific configuration.

Thiết lập vị trí khu vực cấu hình riêng

Vị trí mặc định cho một khu vực cấu hình tư nhân là:

sử dụng nhà-dir/.eclipse/< sản phẩm-id > _ < sản phẩm phiên bản >/cấu hình

Thư mục chính của người dùng được xác định bởi thuộc tính hệ thống Java của người dùng.home. Id sản phẩm và phiên bản thu được từ tệp đánh dấu sản phẩm .eclipseproduct trong cài đặt Eclipse.

0

bạn có thể lưu trữ tất cả những thông tin vào một tập tin và đọc từ nó và thiết lập mỗi biến trong các mã sử dụng:

System.setProperty(...); 

Hãy cho tôi biết khi đó giải quyết vấn đề của bạn.

+0

Không có mã, chỉ bổ sung eclipse của nó để tôi có thể truy cập trac qua nhật thực. –

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