cacerts java ssl ssl-certificate keytool

cacerts - Error de keytool de Java después de importar el certificado, "error de keytool: java.io.FileNotFoundException y acceso denegado"



keytool java (10)

Estoy tratando de conectar una API web de Java a través de HTTPS; sin embargo, se arroja una excepción:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException

Seguí estos pasos que aprendí de keytool en línea y tutoriales SSL cert:

  1. Copié la URL de HTTPS en el navegador, descargué los certificados SSL y los instalé en el navegador usando Internet Explorer.

  2. Exporté los certificados a una ruta en mi computadora, los certificados se guardaron como .cer

  3. Usó la opción de importación de keytool. El siguiente comando se ejecuta sin ningún error.

    keytool -import -alias downloadedCertAlias -keystore C:/path/to/my/keystore/cacerts.file -file C:/path/of/exportedCert.cer

  4. Se me solicitó una contraseña en el símbolo del sistema, que ingresé y luego fui autenticado.

  5. La ventana de cmd imprimió algunos datos y firmas de certificados y me preguntaron:

    Confiar en este certificado?

    Yo respondí que sí.

  6. El indicador de cmd mostrado

    Certificado fue agregado a keystore

    Sin embargo, después de ese mensaje, se mostró otra excepción:

    keytool error: java.io.FileNotFoundException: C:/Program files/.../cacerts <Access Denied>

Finalmente, cuando revisé el almacén de claves, no se agregó el certificado SSL y mi aplicación ofrece la misma excepción que recibía antes cuando intento conectarme:

(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)


Estaba teniendo el mismo problema al importar el certificado en el almacén de claves local. Cada vez que emito el comando keytool recibí el siguiente error.

El certificado se agregó al keystore keytool error: java.io.FileNotFoundException: C: / Archivos de programa / Java / jdk1.8.0_151 / jre / lib / security (Acceso denegado)

El siguiente trabajo de solución para mí.

1) asegúrese de que está ejecutando el símbolo del sistema en Rus como modo de administrador

2) Cambie su directorio actual a% JAVA_HOME% / jre / lib / security

3) luego emita el comando a continuación

keytool -import -alias "mycertificatedemo" -file "C: / Users / name / Downloads / abc.crt" -keystore cacerts

3) dar la contraseña changeit

4) ingrese y

5) verá el siguiente mensaje exitoso "El certificado se agregó al almacén de claves"

Asegúrate de estar dando los " cacerts " solo en el valor del parámetro " parakeystore ", ya que estaba dando la ruta completa como "C **: / Program Files / Java / jdk1.8.0_151 / jre / lib / security **".

Espero que esto funcione


Esto podría suceder si no está ejecutando el símbolo del sistema en modo administrador. Si está utilizando Windows 7, puede ir a ejecutar, escriba cmd y presione Ctrl + Shift + intro. Esto abrirá el símbolo del sistema en modo administrador. De lo contrario, también puede ir a Inicio -> todos los programas -> accesorios -> hacer clic con el botón derecho en el símbolo del sistema y hacer clic en ''ejecutar como administrador''.


Incluso ejecuto el símbolo del sistema como administrador pero no funcionó para mí con el siguiente error.

''keytool'' is not recognized as an internal or external command, operable program or batch file.

Si la ruta a la herramienta de claves no está en las rutas de acceso del sistema, necesitará usar la ruta completa para usar la herramienta de claves, que es

C:/Program Files/Java/jre<version>/bin

Entonces, el comando debería ser como

"C:/Program Files/Java/jre<version>/bin/keytool.exe" -importcert -alias certificateFileAlias -file CertificateFileName.cer -keystore cacerts

eso funcionó para mí.


Para los usuarios de Mac, asegúrese de sudo y, cuando se le pida primero, proporcione su contraseña de administrador, que irá seguida de la contraseña del almacén de claves que, por lo general, debería ser "changeit", a menos que realmente la haya cambiado.


Puede almacenar otro disco o ruta (no C) EX: D /

C:/Program Files/Java/jre1.8.0_101/bin>keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore D:/myserver.jks -dname "CN=myserver,OU=IT-WebDev, O=TIACHOP, L=HCM, ST=0753, C=VN" && keytool -certreq -alias server -file D:/myserver.csr -keystore D:/myserver.jks


Puedes darte permisos para solucionar este problema.

Haga clic con el botón derecho en cacerts> elija propiedades> seleccione la pestaña Securit> Permitir todos los permisos para todos los nombres de grupos y usuarios.

Esto funcionó para mí.


Si está usando windows8:

  1. Haga clic en el
  2. En el cuadro de búsqueda, escriba el command prompt
  3. A partir del resultado, haga clic con el botón derecho en el command prompt y haga clic en Run as administrator . Luego ejecuta el comando keytool.

Tuve el mismo problema en Windows y pude resolverlo ejecutando cmd.exe como administrador (haga clic con el botón derecho en el menú de inicio y luego en "Ejecutar como administrador").


Verifique los permisos de escritura en el almacén de claves.


SOLUCIONADO

  1. Simplemente ejecute CMD como administrador.
  2. Asegúrate de usar la contraseña correcta del almacén de confianza