Geração de Certificados para WS

Olá pessoal,
tenho estou com alguns problemas na criação de certificados para um WS.
Criei um certificado utilizando as seguintes linhas:

keytool -genkey -alias WSKeyStore -keyalg RSA -keypass passWS -keystore WSKeyStore.keystore -storepass passWS -validity 3650
keytool -export -alias WSKeyStore -file WSKeyStore.cer -keystore WSKeyStore.keystore -storepass passWS
keytool -export -alias WSStore -file WSKeyStore.cer -keystore WSKeyStore.keystore -storepass passWS -import -v -trustcacerts -alias WSKeyStore -keypass passWS -file WSKeyStore.cer -keystore WSKeyStore.truststore -storepass passWS

Gerou td certinho, mas estou com problemas, ao criar o keystore passando um IP no Common Name, meu Cliente WS da pau.

java.security.cert.CertificateException: No subject alternative names present

Passando localhost como Common Name e fazendo algumas alteracoes funciona certinho. Porém preciso que o WS seja acessado de fora óbvio.

Dei uma pesquisada e achei o seguinte:
RFC 2818: " …In some cases, the URI is specified as an IP address rather than a hostname. In this case, the iPAddress subjectAltName must be present in the certificate and must exactly match the IP in the URI…"
Com solução em http://prshanmu.com/articles/
Como não conheço praticamente nada de Certificados, como eu poderia gerar um Keystore com subjectAltName?

Se alguem puder me ajudar agradeço!
Abraço

keytool -genkey -alias WSKeyStore -keyalg RSA -keypass passWS -keystore [b]WSKeyStore.keystore[/b] -storepass passWS -validity 3650  keytool -export -alias WSKeyStore -file WSKeyStore.cer -keystore WSKeyStore.keystore -storepass passWS keytool -export -alias WSStore -file WSKeyStore.cer -keystore WSKeyStore.keystore -storepass passWS -import -v -trustcacerts -alias WSKeyStore -keypass passWS -file WSKeyStore.cer -keystore WSKeyStore.truststore -storepass passWS  

Quando voce passa o param -keystore voce esta falando para sua keytool

“Carinha cria uma keystore ai pra mim”.

Vamos supor que voce esteja rodando o keytool em “C:\ssl”, ele vai cirar essa keystore nesse diretório de onde voce esta rodando esse caminho.

Isso eu sei, mas minha dúvida n era essa.
E sim como criar um keystore com subjectAltName pelo Keytool.

Somente o keytool da JDK7 tem (ou terá) a capacidade de gerar estas extensões nos certificados.

Tente usar o sectool

Esqueci de mencionar…

Sempre que voce vai trabalhar com certificados, domínios, é aconselhável voce não utilizar o “localhost” porque muitas vezes, isso gera alguns problemas ou algum comportamento inesperado.

Sendo assim, sugiro voce a criar um host no seu “hosts” file e tentar de novo.

Se tiver usando Windows:

c:\WINDOWS\system32\drivers\etc\hosts (geralmente)

Linux

\etc\hosts

Abraços