Pergunta

Eu não posso acreditar que eu sou a única pessoa a correr contra este problema. Estive pesquisando por horas e não tive nenhuma sorte. A documentação de segurança do Java não parece certificados endereço PKCS12 completamente.

Eu estou tentando configurar Java para certificados PKCS12 usuário específicas. Entre outras coisas, este será utilizado para que, em Eclipse, eu posso acessar um servidor Trac que é autenticada através de certificados. Eu estou usando a integração Trac Mylyn do plugin para o eclipse.

Aqui está a configuração:

  • diretórios home do usuário estão em / home
  • multiusuário montar em / Central
  • cada usuário tem um certificado pessoal em: ~ / user.p12
  • senha para certificados pessoais é: pass1234
  • a senha de usuários são armazenados em um arquivo de 0400 em ~ / password.txt
  • uma loja de confiança somente leitura para o ca está em: /central/ca.jks
  • nenhuma senha para o truststore
  • JDK 1.6 instalado no /central/jdk_1.6.0
  • Eclipse 3.4 instalado no /central/eclipse_3.4.0
  • JAVA_HOME = / / jdk_1.6.0
  • centro
  • JAVA_HOME está definida para a localização JDK porque Eclipse precisa desse
  • ECLIPSE_HOME = / / eclipse_3.4.0
  • centro
  • JRE vive em $ JAVA_HOME / jre
  • cada usuário tem um arquivo ~ / .java.policy
  • existe um servidor trac running em https: //trac.internal/trac
  • as autentica servidor trac através de certificados

Agora, eu quero ser capaz de ter cada usuário simplesmente modificar algum arquivo que eles próprios (arquivo como o ~ / .java.policy, por exemplo), e ser capaz de iniciar o aplicativo Eclipse central e repositório Trac acesso . Parece bastante simples.

Agora, a única maneira que eu posso chegar a este trabalho é editar o $ ECLIPSE_HOME / arquivo eclipse.ini e adicionar

-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, que funciona, mas há dois problemas com ele:

  • Cada usuário tem que ter instalar seu próprio Ecipse. (Ou pode eclipsar li que a partir de um arquivo de usuário?)
  • É Eclipse específico, eu, em última análise gostaria de ter isso como uma configuração Java.

Além disso, eu me lembro de algum tempo atrás que você pode editar o arquivo java.security $ JAVA_HOME / jre / lib / security / e adicione

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

Mas Eclipse não parece pegá-lo. Poderia ser porque meus pontos JAVA_HOME para o JDK, e não JRE aninhado do JDK?

Eu vi a Java PKCS # 11 Referência que as referências as seguintes propriedades: keyStoreURL = "none" keyStoreType = "PKCS11" keyStorePasswordURL = some_pin_url

Não havia outra referência vi que disse que você poderia editar o arquivo ~ / .java.policy para incluir:

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

Mas isso não ter pego qualquer um. Talvez ele realmente faz o trabalho e seu não ficando ler pela mesma razão o arquivo java.security não funcionar, ou talvez ele simplesmente não funciona em todos.

Algumas propriedades do sistema que eu vi:

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"

Então, agora, eu acho que estou preso com que cada usuário tenha seu próprio Eclipse intall. Eu sei que soa como uma configuração complicada, mas isso não deve realmente tem nada a ver com Eclipse, tanto quanto a configuração do certificado ... é realmente uma configuração Java para certificados de usuário específicas.

Todas as idéias?

Foi útil?

Solução

Use um específicas do usuário configuração .

Como definir a localização da área de configuração privada

O local padrão para a área de configuração privada é:

user-home-dir / .eclipse / _ / configuração

A casa dir usuário é determinado pela propriedade user.home sistema Java. A identificação do produto e versão são obtidos a partir do arquivo .eclipseproduct marcador produto sob o Eclipse instalar.

Outras dicas

Você pode armazenar todas essas informações em um arquivo e lê-lo e definir cada variável no código usando:

System.setProperty(...);

Deixe-me saber quando isso resolve o seu problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top