¿Cómo corregir el error “java.security.cert.CertificateException: No hay nombres alternativos del sujeto presentes”?

Tengo un cliente de servicio web Java, que consume un servicio web a través de HTTPS.

import javax.xml.ws.Service;

@WebServiceClient(name = "ISomeService", targetNamespace = "http://tempuri.org/", wsdlLocation = "...")
public class ISomeService
    extends Service
{

    public ISomeService() {
        super(__getWsdlLocation(), ISOMESERVICE_QNAME);
    }

Cuando me conecto a la URL del servicio (https://AAA.BBB.CCC.DDD:9443/ISomeService ), Me sale la excepciónjava.security.cert.CertificateException: No subject alternative names present.

Para arreglarlo, primero corriopenssl s_client -showcerts -connect AAA.BBB.CCC.DDD:9443 > certs.txt y obtuve el siguiente contenido en el archivocerts.txt:

CONNECTED(00000003)
---
Certificate chain
 0 s:/CN=someSubdomain.someorganisation.com
   i:/CN=someSubdomain.someorganisation.com
-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----
---
Server certificate
subject=/CN=someSubdomain.someorganisation.com
issuer=/CN=someSubdomain.someorganisation.com
---
No client certificate CA names sent
---
SSL handshake has read 489 bytes and written 236 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-MD5
Server public key is 512 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : RC4-MD5            
    Session-ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Session-ID-ctx:                 
    Master-Key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Key-Arg   : None
    Start Time: 1382521838
    Timeout   : 300 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---

AFAIK, ahora necesito

extraer la parte decerts.txt Entre-----BEGIN CERTIFICATE----- y-----END CERTIFICATE-----,modificarlo para que el nombre del certificado sea igual aAAA.BBB.CCC.DDD yluego importar el resultado usandokeytool -importcert -file fileWithModifiedCertificate (dóndefileWithModifiedCertificate Es el resultado de las operaciones 1 y 2).

¿Es esto correcto?

Si es así, ¿cómo puedo hacer exactamente que el certificado del paso 1 funcione con una dirección basada en IP (AAA.BBB.CCC.DDD)?

Actualización 1 (23.10.2013 15:37 MSK): En respuesta a unpregunta similar, Leí lo siguiente:

Si no tiene el control de ese servidor, use su nombre de host (siempre que haya al menos un CN que coincida con ese nombre de host en el certificado existente).

¿Qué significa exactamente "uso"?

Respuestas a la pregunta(12)

Su respuesta a la pregunta