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.
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.
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`.
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.
Ce n'est pas grave si ça ressemble à ça.
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. . .
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. . .
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.
Tout ce que j'avais à faire était de remplacer la partie -keystore"% JRE_HOME% \ lib \ security \ cacerts "
de chaque fichier batch par -cacerts
.
Recommended Posts