Eclipse에 사용자 별 인증서를 사용하기 위해 Java를 설정하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/663890

문제

나는 내가이 문제에 반하는 유일한 사람이라고 믿을 수 없다. 나는 몇 시간 동안 인터넷 검색을 해왔고 운이 없었습니다. Java 보안 문서는 PKCS12 인증서를 철저히 다루지 않는 것 같습니다.

사용자 별 PKCS12 인증서에 대한 Java를 설정하려고합니다. 무엇보다도 이것은 Eclipse에서 인증서를 통해 인증 된 TRAC 서버에 액세스 할 수 있도록 사용됩니다. Eclipse에는 TRAC Mylyn 통합 플러그인을 사용하고 있습니다.

설정은 다음과 같습니다.

  • 사용자 홈 디렉토리는 /집에 있습니다
  • /Central AT /Central Multiuser Mount
  • 각 사용자는 다음과 같은 개인 인증서가 있습니다. ~/user.p12
  • 개인 인증서의 비밀번호는 다음과 같습니다. Pass1234
  • 사용자 비밀번호는 ~/password.txt의 0400 파일에 저장됩니다.
  • CA의 읽기 전용 신탁 스토어는 다음과 같습니다. /central/ca.jks
  • TrustStore의 비밀번호가 없습니다
  • JDK 1.6에 /central/jdk_1.6.0에 설치되었습니다
  • Eclipse 3.4에 /central/eclipse_3.4.0에 설치되었습니다
  • java_home =/central/jdk_1.6.0
  • 일식이 필요하기 때문에 java_home은 JDK 위치로 설정되었습니다.
  • eclipse_home =/central/eclipse_3.4.0
  • JRE는 $ java_home/jre에 살고 있습니다
  • 각 사용자에게는 ~/.java.policy 파일이 있습니다
  • TRAC 서버가 실행 중입니다 https : //trac.internal/trac
  • TRAC 서버는 인증서를 사용하여 인증합니다

이제 각 사용자가 자신이 소유 한 일부 파일 (예 : ~/.java.policy 파일)을 단순히 수정하고 Central Eclipse 응용 프로그램을 시작하고 TRAC 저장소에 액세스 할 수 있기를 원합니다. 충분히 간단해 보입니다.

지금 당장이 작업을 수행 할 수있는 유일한 방법은 $ eclipse_home/eclipse.ini 파일을 편집하고 추가하는 것입니다.

-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"

좋아, 그것은 효과가 있지만 두 가지 문제가 있습니다.

  • 각 사용자는 자체 ECIPSE 설치가 있어야합니다. (또는 Eclipse가 사용자 파일에서 그것을 읽을 수 있습니까?)
  • 일식에 따라 다릅니다. 궁극적으로 이것을 Java 구성으로 사용하고 싶습니다.

또한, 나는 당신이 $ java_home/jre/lib/security/java.security 파일을 편집하고 추가 할 수 있다는 것을 기억합니다.

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

그러나 일식은 그것을 선택하지 않는 것 같습니다. 내 java_home이 JDK의 중첩 JRE가 아니라 JDK를 가리키기 때문일 수 있습니까?

나는 그것을 보았다 Java PKCS#11 참조 다음 속성을 참조하십시오. keystoreurl = "none"keystoreType = "pkcs11"keystorePasswordUrl = nod_pin_url

~/.java.policy 파일을 다음과 같이 편집 할 수 있다고 말한 또 다른 참조가있었습니다.

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

그러나 그것은도 집어지지 않습니다. 어쩌면 그것은 실제로 작동하고 Java.security 파일이 작동하지 않거나 전혀 작동하지 않는 것과 같은 이유로 읽지 않을 수도 있습니다.

내가 본 일부 시스템 속성 :

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"

그래서 지금, 나는 각 사용자에게 자신의 일식을 갖도록하는 데 갇혀 있다고 생각합니다. 나는 그것이 복잡한 설정처럼 들리지만, 이것은 인증서 설정까지 일식과 관련이 없어야합니다. 실제로 사용자 특정 인증서를위한 Java 설정입니다.

어떤 아이디어?

도움이 되었습니까?

해결책

a 사용자 별 구성.

개인 구성 영역 위치 설정

개인 구성 영역의 기본 위치는 다음과 같습니다.

사용자 집단/.eclipse/u003Cproduct-id> _u003Cproduct-version> /구성

사용자 홈 DIR은 user.home Java System 속성에 의해 결정됩니다. 제품 ID와 버전은 Eclipse 설치 하의 제품 마커 파일 .EclipseProduct에서 얻습니다.

다른 팁

모든 정보를 파일에 저장하고이를 읽고 다음을 사용하여 코드의 각 변수를 설정할 수 있습니다.

System.setProperty(...);

그것이 당신의 문제를 해결할 때 알려주십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top