Pessoal,
Sofri algum tempo até achar como fazer, então compartilho pois pode ser a dor de cabeça de algum colega.
Estava a configurar o Glassfish v3 + SSL com um certificado SERASA do tipo PKCS12 (Chave Publica + Chave Privada)
Minhas principais fontes:
http://www.nabisoft.com/tutorials/glassfish/installing-glassfish-311-on-ubuntu
http://weblogs.java.net/blog/kalali/archive/2010/02/27/how-install-godaddy-certificate-your-glassfish-v3
http://weblogs.java.net/blog/kumarjayanti/archive/2009/08/26/configuring-non-jks-keystore-glassfish-v3
Destaque para este último.
Gostaria somente de fazer um parenteses com este ultimo:
Tudo o que precisei fazer foi o seguinte:
Adicionar a minha chave privada do tipo PKCS12 ao meu keystore.jks.
keytool -importkeystore -deststorepass <senhakeystoredestino> -destkeystore keystore.jks -srckeystore minha.keystore.meu.dominio.com.no.formato.p12 -srcstoretype PKCS12 -alias meu.dominio.com
Modifique no domain.xml do http-listener-2 a entrada SSL alterando para o alias configurado no seu dominio (tenha certeza de que o GF nao esta rodando):
<protocol security-enabled="true" name="http-listener-2">
<http xpowered-by="false" default-virtual-server="server" max-connections="250" server-name="meu.dominio.com">
<file-cache></file-cache>
</http>
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="meu.dominio.com (alias no keystore.jks)"></ssl>
</protocol>
Feito isso, somente adicione ao seu truststore (cacerts.jks) a cadeia de certificados. No meu caso os SERASA:
keytool -import -v -trustcacerts -alias serasacdv2 -file /etc/ssl/certs/campusdigital/serasacd_v2.cer -keystore cacerts.jks
keytool -import -v -trustcacerts -alias serasaacpv2 -file /etc/ssl/certs/campusdigital/serasaacp_v2.cer -keystore cacerts.jks
keytool -import -v -trustcacerts -alias iti -file /etc/ssl/certs/campusdigital/iti_v2.cer -keystore cacerts.jks
Simples… mas deu um trabalhinho até achar como fazer.
[]s