2012-01-01 11 views
5

Quiero hacer que la aplicación web sea accesible desde https en java. Soy novato en este campo. He leído en algún blog que se puede hacer produciendo algún tipo de certificado de identidad. ¿Hay algún sitio que proporcione para producir certificado gratis? ¿Puedo tener cualquier blog o sitio para referirme?cómo hacer que la aplicación web sea accesible desde https en java

gracias

+3

Cómo se configura SSL dependerá del servidor web que esté utilizando (por ejemplo, Tomcat, Apache). Puede usar un certificado autofirmado, pero sus usuarios recibirán una advertencia sobre el certificado. Necesitará comprar un certificado de una CA confiable (autoridad certificadora). – jordanm

+0

Ya no es necesario comprarlo ya que hay un servicio gratuito que puede usar para obtener un certificado válido. Aquí hay instrucciones específicas de Java sobre cómo usar el servicio Let's Encrypt: https://vaadin.com/blog/-/blogs/lazy-loading-with-vaadin-8 – mstahv

Respuesta

5

se necesita un certificado SSL para servir una aplicación SSL. El problema con un certificado SSL es que necesita que el navegador confíe en él, por lo tanto, si la gente usa la aplicación, debe obtener un certificado SSL real de un proveedor de certificados, como GoDaddy u otros. Para fines de prueba, puede hacer un certificado "autofirmado" que se puede usar, pero el cliente que utiliza el navegador recibirá advertencias que indican problemas con el certificado.

No hay forma de obtener un certificado SSL real de forma gratuita.

Confío en que a partir de esta respuesta puede realizar las consultas de google adecuadas para que pueda seguir su camino.

+1

@ Francis: No estoy de acuerdo con la forma en que usted frase su Respuesta: Al final, ¿qué es un certificado SSL real? Si crea un certificado SSL autofirmado y lo configura como confiable, entonces ¿qué es lo que lo hace no real, como usted lo frase? Es una cuestión de en quién confiaba y quién es la autoridad que lo verifica, pero en mi humilde opinión el término "real" no es bueno. – Cratylus

10

Necesita un certificado SSL aprobado por una CA (autoridad certificadora) para que sus clientes no reciban una advertencia en sus navegadores cuando usan su aplicación web. Para que se obtenga dicho certificado, generalmente debe pagar algo de dinero a la CA. Sin embargo, para fines de prueba puede usar un certificado autofirmado.

Puede generar un certificado autofirmado y colocarlo en su servidor. Más tarde puede reemplazarlo con un certificado real. Si ya tiene el certificado real, simplemente salte al paso 2 de mi respuesta. Los métodos para generar un certificado autofirmado ser diferentes, pero básicamente hay que hacer lo siguiente (abstracción):

1. Generar un certificado autofirmado:

Puede utilizar numerosas herramientas y programas para eso, pero me parece de alguna manera las maneras más populares para generar un certificado auto firmado son:

a) herramienta de claves de java-http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html b) openssl-http://www.sslshopper.com/article-most-common-openssl-commands.html

Ambos métodos son absolutamente equivalentes y es una cuestión de preferencia que se utiliza (utilizo openssl)

2. Poner este certificado en el servidor de contenedor de servlets/aplicación.

Hay muchos contenedores de servlets y servidores de aplicaciones y las instrucciones para poner el certificado allí varían incluso entre las diferentes versiones de los servidores/contenedores y la configuración elegida. A continuación voy a enumerar los que creo que son más populares entre los jóvenes hoy en día ...

a) Tomcat 7-http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

b) glassfish-http://artur.ejsmont.org/blog/content/how-to-generate-self-signed-ssl-certificate-for-glassfish-v3-and-import-it-into-java-keyring

c) jbossWeb (Servlet Container) - http://docs.jboss.org/jbossweb/3.0.x/ssl-howto.html

3

I cuenta de esto es hilo muy antiguo, pero puede obtener hoy certificados gratuitos de una CA (Autoridad de certificación) llamada Let's Encrypt. Obtener un certificado es bastante fácil usando el cliente de protocolo Certbot ACME (Entorno de administración de certificados automáticos) https://certbot.eff.org/. El cliente requiere acceso raíz en su servidor.

1) Instalar Cerbot usar la escritura certbot-auto

wget https://dl.eff.org/certbot-auto 
chmod a+x ./certbot-auto 
./certbot-auto --help 

2) Fetch una licencia ya sea usando el plugin independiente o plugin de Webroot. Standalone abre un pequeño servidor al puerto 80 o 443 por lo que cualquiera de los puertos debe estar libre. Webroot usa un servidor en ejecución existente. Con orden de marcha independiente

certbot-auto certonly --standalone --standalone-supported-challenges http-01 -d yourdomain.com 

con tanto plugin de Webroot y autónomo plugin de la certbot opción certonly buscará un certificado y lo almacena en/etc/letsencrypt// en vivo.

3) el certificado de Cifrado de Let son de corta duración (sólo 90 días), a fin de recordar para renovar los

certbot-auto renew 

4) Una vez que tenga su certificado, es necesario convertirla a formato PKCS12 y almacenarla a Almacén de claves de Java.

openssl pkcs12 -export -in /etc/letsencrypt/live/yourdomain.com/fullchain.pem -inkey /etc/letsencrypt/live/yourdomain.com/privkey.pem -out /etc/letsenscrypt/live/yourdomain.com/pkcs.p12 -name mytlskeyalias -passout pass:mykeypassword 

keytool -keystore /path/to/my/keystore -delete -alias ‘mytlskeyalias’ -storepass ‘mystorepassword’ 

keytool -importkeystore -deststorepass mystorepassword -destkeypass mykeypassword -destkeystore /path/to/my/keystore -srckeystore /etc/letsencrypt/live/mydomain.com/pkcs.p12 -srcstoretype PKCS12 -srcstorepass mykeypassword -alias mytlskeyalias 

Todos los pasos se describen con más detalle en https://vaadin.com/blog/-/blogs/enabling-https-in-your-java-server-using-a-free-certificate

A continuación, sigue los enlaces de Nikola Yovchev para contenedores de servlets específicos para habilitar SSL/TLS.

Cuestiones relacionadas