utiliza saber respuesta recomienda públicas propietario migrar las kit herramienta formato existe ejemplo desarrollo crear coinciden claves certificados certificado archivo almacén administración java https glassfish keytool

java - saber - las claves públicas en la respuesta y en el almacén de claves no coinciden



¿Cómo crear un certificado con keytool? (2)

Ya miré en 4 (sí, cuatro) tutoriales y todavía no entiendo cómo hacerlo funcionar.

Después de configurar un segundo oyente HTTP configurado para HTTPS en mi servidor Glassfish 4.1.1, intento crear un certificado, por lo que no obtengo errores de seguridad en mi navegador. El problema es que simplemente no consigo que la herramienta clave funcione correctamente; simplemente se equivoca y arroja errores extraños haga lo que haga. Por ejemplo, no encuentra algunos de los comandos que recomiendan muchas guías.

Adivino que la herramienta cambió en Java 8 u otra cosa, realmente no lo sé.

La cosa es: quiero crear un certificado, exportarlo a mi servidor de Glassfish y tener HTTPS correctamente implementado y trabajando con fines de prueba. ¿Qué debería hacer para esto?

EDITAR: En serio, estoy en un problema por esto. Simplemente no puedo hacer nada: la contraseña cacerts no es el típico "cambio", no puedo obtener mis claves fuera del almacén de claves, y por lo tanto no puedo hacer nada con los certificados.


Lo hice en un tomcat hace muchos años, recuerdo que no lo hice bien al primer intento.

A menos que desee gastar dinero (supongo que no hay firma de certificados gratis para sitios web), recomiendo un certificado autofirmado.

¿Has probado este? http://docs.oracle.com/cd/E19798-01/821-1751/ghlgv/index.html


Si todo lo que necesita hacer es crear un par de certificados autofirmados ... Tal vez pueda ayudarlo.

En una máquina con Microsoft Windows:

  • Cree un directorio vacío y guarde el script siguiente allí (GenTestCerts.ps1).
  • Edite la secuencia de comandos y cambie los valores de Alias ​​(y otras variables) a lo que necesite.
  • Ejecuta el script

Copie el servidor (tomcat.server.net.p12) cert donde su servidor lo espera.

Copie el Trust Store (truststore.p12) donde su servidor lo espera.

Instale el certificado admin (tomcat-admin.p12) en su Windows Key Store y acepte la raíz en la sección Autoridades de certificación de raíz de confianza.

<# This sample Windows PowerShell script will: 1.) Create a Certificate Authority 2.) Create a Server Certificate signed by the Certificate Authority 3.) Create a Client Certificate signed by the Certificate Authority 4.) Create a TrustStore containing the public Certificate Authority key The first section defines variables The second section does the work All Key Stores are PKCS12 The Server Certificate includes a Subject Alternative Name The command below uses the serverAlias as the serverDNS value, but may be changed to whatever you need You just have Java 7 (or higher) installed and keytool in your path #> <# Your Organizational Information #> $organizationalUnit="USN" $organization="NRL" $locality="Washington" $state="DC" $country="USA" <# Certificate Alias #> $authorityAlias="tomcat-root" $serverAlias="tomcat.server.net" $clientAlias="tomcat-admin" <# Subject Alternative Name #> $serverDNS="$serverAlias" <# Extensions #> $certAuthExtension="BasicConstraints:critical=ca:true,pathlen:10000" $altNameExtension="san=dns:$serverDNS" <# Trust Store #> $trustCertName="truststore" <# Key size and effective period #> $keySize="4096" $validity="365" <# Key and Store Password #> $certPassword="changeit" <# ------------------------------------------------------------------------------------------ #> <# ------------------ Use caution if you change anything below this line ------------------ #> <# ------------------------------------------------------------------------------------------ #> $authorityDN="CN=$authorityAlias,OU=$organizationalUnit,O=$organization,L=$locality,ST=$state,C=$country" $serverDN="CN=$serverAlias,OU=$organizationalUnit,O=$organization,L=$locality,ST=$state,C=$country" $clientDN="CN=$clientAlias,OU=$organizationalUnit,O=$organization,L=$locality,ST=$state,C=$country" rm "$authorityAlias.*" rm "$serverAlias.*" rm "$clientAlias.*" rm "$trustCertName.*" echo "" echo "Generating the Root Authority Certificate..." keytool -genkeypair -alias "$authorityAlias" -keyalg RSA -dname "$authorityDN" -ext "$certAuthExtension" ` -validity "$validity" -keysize "$keySize" -keystore "$authorityAlias.p12" -keypass "$certPassword" ` -storepass "$certPassword" -deststoretype pkcs12 echo "- Exporting Root Authority Certificate Public Key..." keytool -exportcert -rfc -alias "$authorityAlias" -file "$authorityAlias.cer" -keypass "$certPassword" ` -keystore "$authorityAlias.p12" -storepass "$certPassword" echo "" echo "Generating the Server Certificate..." echo "- Creating Key Pair" keytool -genkey -validity "$validity" -keysize "$keySize" -alias "$serverAlias" -keyalg RSA -dname "$serverDN" ` -ext "$altNameExtension" -keystore "$serverAlias.p12" -keypass "$certPassword" -storepass "$certPassword" ` -deststoretype pkcs12 echo "- Creating Certificate Signing Request" keytool -certreq -alias "$serverAlias" -ext "$altNameExtension" -keystore "$serverAlias.p12" -file "$serverAlias.csr" ` -keypass "$certPassword" -storepass "$certPassword" echo "- Signing Certificate" keytool -gencert -infile "$serverAlias.csr" -keystore "$authorityAlias.p12" -storepass "$certPassword" ` -alias "$authorityAlias" -ext "$altNameExtension" -outfile "$serverAlias.pem" echo "- Adding Certificate Authority Certificate to Keystore" keytool -import -trustcacerts -alias "$authorityAlias" -file "$authorityAlias.cer" -keystore "$serverAlias.p12" ` -storepass "$certPassword" -noprompt echo "- Adding Certificate to Keystore" keytool -import -keystore "$serverAlias.p12" -file "$serverAlias.pem" -alias "$serverAlias" -keypass "$certPassword" ` -storepass "$certPassword" -noprompt rm "$serverAlias.csr" rm "$serverAlias.pem" echo "" echo "Generating the Client Certificate..." echo "- Creating Key Pair" keytool -genkey -validity "$validity" -keysize "$keySize" -alias "$clientAlias" -keyalg RSA -dname "$clientDN" ` -keystore "$clientAlias.p12" -keypass "$certPassword" -storepass "$certPassword" -deststoretype pkcs12 echo "- Creating Certificate Signing Request" keytool -certreq -alias "$clientAlias" -keystore "$clientAlias.p12" -file "$clientAlias.csr" -keypass "$certPassword" ` -storepass "$certPassword" echo "- Signing Certificate" keytool -gencert -infile "$clientAlias.csr" -keystore "$authorityAlias.p12" -storepass "$certPassword" ` -alias "$authorityAlias" -outfile "$clientAlias.pem" echo "- Adding Certificate Authority Certificate to Keystore" keytool -import -trustcacerts -alias "$authorityAlias" -file "$authorityAlias.cer" -keystore "$clientAlias.p12" ` -storepass "$certPassword" -noprompt echo "- Adding Certificate to Keystore" keytool -import -keystore "$clientAlias.p12" -file "$clientAlias.pem" -alias "$clientAlias" -keypass "$certPassword" ` -storepass "$certPassword" -noprompt rm "$clientAlias.csr" rm "$clientAlias.pem" echo "" echo "Generating the Trust Store and put the Client Certificate in it..." keytool -importcert -alias "$authorityAlias" -file "$authorityAlias.cer" -keystore "$trustCertName.p12" ` -storepass "$certPassword" -noprompt echo "" echo "Removing Public Key Files..." rm "$authorityAlias.cer"

Espero que esto ayude.

Lo mejor, Ace