[JAVA] Installer le certificat CA sur ColdFusion

Résolvez le problème selon lequel le certificat utilisé par le serveur Web, le serveur de messagerie ou le serveur LDAP (OpenLDAP, Active Directory, etc.) auquel se connecter dans ColdFusion ne peut pas communiquer avec le certificat émis par l'autorité de certification privée ou l'autocertificat. Le chemin.

Je veux savoir vite

Puisque ColdFusion s'exécute sur une machine virtuelle Java, vous pouvez toujours utiliser la méthode Java d'importation de certificats dans le magasin de clés cacerts à l'aide de la commande keytool. Le runtime Java (JRE) inclus inclut également keytool.

--JRE se trouve dans C: \ ColdFusion2018 \ jre. --cacerts Le mot de passe par défaut du keystore est «changeit».

Fondamentalement, si vous en savez beaucoup, vous pouvez proposer diverses choses par google, mais j'ai essayé de résumer la méthode dans l'environnement Windows que j'utilise souvent.

procédure

1. Préparez le certificat

Préparez le fichier de certificat à importer.

Il semble que le format de fichier puisse être l'un des formats DER (format binaire), PEM (format BASE64), P7B (format PKCS # 7), mais préparer au format PEM couramment utilisé.

: notebook: Le nom du fichier est ʻexample-ca.cer`.

2. Lot

Comme il faut du temps et des efforts pour le faire à chaque fois lors de l'utilisation ou du test, faites-en un lot Windows.

Créez un fichier register-cert.bat avec le contenu suivant copié et collé au même emplacement que le dossier dans lequel vous avez enregistré example-ca.cer.

register-cert.bat


@echo off
setlocal

set JRE_HOME=C:\ColdFusion2018\jre
set CERT_FILE=%~dp0example-ca.cer
set CERT_ALIAS=example-ca

echo %CERT_FILE%Alias%CERT_ALIAS%Inscription en tant que...
"%JRE_HOME%\bin\keytool.exe" -importcert -alias "%CERT_ALIAS%" -file "%CERT_FILE%" -keystore "%JRE_HOME%\lib\security\cacerts" -storepass changeit -noprompt

echo.
pause

Préparez également un fichier de commandes à supprimer lorsque vous n'en avez plus besoin.

remove-cert.bat


@echo off
setlocal

set JRE_HOME=C:\ColdFusion2018\jre
set CERT_ALIAS=example-ca

alias d'écho%CERT_ALIAS%Est en cours de suppression...
"%JRE_HOME%\bin\keytool.exe" -delete -alias "%CERT_ALIAS%" -keystore "%JRE_HOME%\lib\security\cacerts" -storepass changeit -noprompt

echo.
pause

: notebook: La partie example-ca.cer de CERT_FILE est le nom du fichier, changez-le en conséquence. : notebook: La spécification de CERT_ALIAS est enregistrée comme nom d'alias du certificat. Utilisez ce nom lors de la suppression.

3. Contenu du dossier

Ce n'est pas grave si ça ressemble à ça.

image.png

4. Inscrivez-vous

Double-cliquez sur register-cert.bat pour l'exécuter.

** Résultat d'exécution **:

C:\cert-test\example-ca.Aussi connu comme exemple cer-Inscription en tant que CA...
avertissement:Pour accéder au keystore de cacerts-Utilisez l'option cacerts
Certificat ajouté au keystore

Appuyez sur n'importe quelle touche pour continuer. . .

Si le message «Le certificat a été ajouté au fichier de clés» s'affiche, l'enregistrement est réussi.

À propos, s'il est déjà enregistré, il échouera comme suit.

C:\cert-test\example-ca.Enregistrement de cer...
avertissement:Pour accéder au keystore de cacerts-Utilisez l'option cacerts
erreur keytool: java.lang.Exception:Le certificat n'a pas été importé. alias<example-ca>Existe déjà

Appuyez sur n'importe quelle touche pour continuer. . .

5. Supprimer

Double-cliquez sur remove-cert.bat pour l'exécuter.

** Résultat d'exécution **:

Aussi connu comme exemple-Supprimer ca...
avertissement:Pour accéder au keystore de cacerts-Utilisez l'option cacerts

Appuyez sur n'importe quelle touche pour continuer. . .

Il ne semble y avoir aucun message de réussite. S'il n'est pas enregistré, il échouera comme suit.

Aussi connu comme exemple-Supprimer ca...
avertissement:Pour accéder au keystore de cacerts-Utilisez l'option cacerts
erreur keytool: java.lang.Exception:alias<example-ca>N'existe pas

Appuyez sur n'importe quelle touche pour continuer. . .

Supplément

Il semble qu'il existe deux modèles de JVM, «basé sur Java 8» et «basé sur Java 11», en fonction de l'heure d'installation de ColdFusion 2018.

Dans cet environnement, Java 11 me prévient d'utiliser l'option -cacerts avec keytool, mais j'ai pu l'ajouter / la supprimer.

Il semble que l'option -cacerts soit exclusive avec -keystore et que vous n'ayez pas à spécifier le chemin vers le fichier cacerts. Cependant, Java 8 n'a pas cette option, donc si vous souhaitez utiliser le lot dans plusieurs environnements, il est préférable de spécifier le chemin dans le keystore comme décrit actuellement.

Comment éviter les avertissements dans Java 11

Tout ce que j'avais à faire était de remplacer la partie -keystore"% JRE_HOME% \ lib \ security \ cacerts " de chaque fichier batch par -cacerts.

Les références

Recommended Posts

Installer le certificat CA sur ColdFusion
Installez / exécutez un simulateur de robot autonome dans l'environnement wsl2 / docker!
Installer du fil dans l'image du docker
Installez le plug-in dans Eclipse
Multiplication dans un tableau Ruby
Rechercher un sous-ensemble en Java
Installez le plug-in Tomcat dans Eclipse