2012-07-29 14 views
7

Duplicar posibles:
How are SSL certificate server names resolved/Can I add alternative names using keytool?¿La dirección IP como nombre de host (CN) al crear un certificado? (HTTPS equivocado nombre de host: debe ser <ipAddress>)

creé un certificado y establecer el CN ​​a la dirección IP del servidor que está en xxx.xxx formato .xxx.xxx Pero cuando intento ejecutar mi código en Java, recibo un mensaje de error HTTPS hostname wrong: should be <xxx.xxx.xxx.xx>.

¿Qué podría estar mal? Estoy seguro de que me estoy conectando a la dirección IP correcta. Sin embargo, no especifiqué el puerto del servidor en el certificado. ¿Se requiere el puerto cuando se proporciona el valor para CN? Pero estoy usando el puerto predeterminado para https que es 8443. Además, traté de cambiar mi CN de la dirección IP de mi servidor a "localhost". Funciona después de eso. Estoy pensando si la parte CN no acepta una dirección IP como valor?

¿Puede explicar cómo funciona el CN ​​y cuál es el valor requerido para ello?

Gracias!

+1

Para los downvoters: la búsqueda de nombres * es * por definición específica del tiempo de ejecución, en este caso para el tiempo de ejecución de Java, y por lo tanto está en el tema. Si esta pregunta es downvoted, off- la cuestión del tema probablemente no sea una buena razón. –

Respuesta

22

La identidad que necesita ingresar en el certificado debe ser la que está buscando a través de la URL. Por ejemplo, si está usando https://www.example.net, su certificado debe ser válido para www.example.net; si usa https://10.0.0.1/, su certificado debe ser válido para 10.0.0.1.

El nombre común RDN en el Asunto DN del certificado normalmente solo se usa cuando (a) no hay una entrada DNS de nombre alternativo del sujeto y (b) está buscando un nombre de host, no una dirección IP. Esto se define en RFC 2818 Section 3.1:

Si existe una extensión subjectAltName de tipo dNSName, DEBE utilizarse como identidad. De lo contrario, DEBE utilizarse el campo Nombre (más específico) Común en el campo Asunto del certificado. Aunque el uso del Nombre común es una práctica existente, es obsoleto y se recomienda a las Autoridades de certificación que usen el dNSName.

[...]

En algunos casos, el URI se especifica como una dirección IP en lugar de un nombre de host. En este caso, el asunto iPAddressAltName debe estar presente en el certificado y debe coincidir exactamente con la dirección IP en el URI.

En general, el uso de la dirección IP en los certificados no se recomienda (ver problemas mencionados en RFC 6125. Sin embargo, si usted realmente necesita, que necesita un certificado con la dirección IP es una entrada de SAN de tipo de dirección IP , que puede generar como se describe en this answer.

+0

Hmm, mi SSL se está oxidando, votando en su lugar :) –

Cuestiones relacionadas