[JAVA] Installieren Sie das CA-Zertifikat auf ColdFusion

Lösen Sie das Problem, dass das vom Webserver, Mailserver oder LDAP-Server (OpenLDAP, Active Directory usw.) für die Verbindung in ColdFusion verwendete Zertifikat nicht mit dem von der privaten Zertifizierungsstelle oder dem Selbstzertifikat ausgestellten Zertifikat kommunizieren kann. Der Weg.

Ich möchte es schnell wissen

Da ColdFusion auf einer JVM ausgeführt wird, können Sie weiterhin die Java-Methode zum Importieren von Zertifikaten in den cacerts-Keystore mit dem Befehl keytool verwenden. Die enthaltene Java-Laufzeit (JRE) enthält auch das Keytool.

--JRE befindet sich in C: \ ColdFusion2018 \ jre. --cacerts Das Standardkennwort für den Keystore lautet "changeit".

Grundsätzlich Wenn Sie so viel wissen, können Sie sich über Google verschiedene Dinge einfallen lassen, aber ich habe versucht, die Methode in der Windows-Umgebung zusammenzufassen, die ich häufig verwende.

Verfahren

1. Bereiten Sie das Zertifikat vor

Bereiten Sie die zu importierende Zertifikatdatei vor.

Es scheint, dass das Dateiformat DER (Binärformat), PEM (BASE64-Format), P7B (PKCS # 7-Format) sein kann, aber im allgemein verwendeten PEM-Format vorbereiten kann.

: notebook: Der Dateiname ist das als example-ca.cer gespeicherte Beispiel.

2. Charge

Machen Sie es zu einem Windows-Stapel, da es jedes Mal Zeit und Mühe kostet, es beim Betrieb oder Testen auszuführen.

Erstellen Sie eine register-cert.bat-Datei mit den folgenden Inhalten, die an derselben Stelle kopiert und eingefügt wurden wie der Ordner, in dem Sie example-ca.cer gespeichert haben.

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%Registrierung als...
"%JRE_HOME%\bin\keytool.exe" -importcert -alias "%CERT_ALIAS%" -file "%CERT_FILE%" -keystore "%JRE_HOME%\lib\security\cacerts" -storepass changeit -noprompt

echo.
pause

Bereiten Sie auch eine Batchdatei zum Löschen vor, wenn Sie sie nicht mehr benötigen.

remove-cert.bat


@echo off
setlocal

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

Echo-Alias%CERT_ALIAS%Wird gelöscht...
"%JRE_HOME%\bin\keytool.exe" -delete -alias "%CERT_ALIAS%" -keystore "%JRE_HOME%\lib\security\cacerts" -storepass changeit -noprompt

echo.
pause

: notebook: Der Beispiel-ca.cer-Teil von CERT_FILE ist der Dateiname, also ändern Sie ihn entsprechend. : notebook: Die Spezifikation von CERT_ALIAS wird als Aliasname des Zertifikats registriert. Verwenden Sie diesen Namen beim Löschen.

3. Ordnerinhalt

Es ist in Ordnung, wenn es so aussieht.

image.png

4. Registrieren

Doppelklicken Sie auf "register-cert.bat", um es auszuführen.

** Ausführungsergebnis **:

C:\cert-test\example-ca.Auch als Cer-Beispiel bekannt-Registrierung als ca....
Warnung:Zugriff auf den Cacerts-Keystore-Verwenden Sie die Option cacerts
Zertifikat zum Keystore hinzugefügt

Drücken Sie eine beliebige Taste, um fortzufahren. . .

Wenn die Meldung "Zertifikat wurde zum Schlüsselspeicher hinzugefügt" angezeigt wird, ist die Registrierung erfolgreich.

Übrigens, wenn es bereits registriert ist, wird es wie folgt fehlschlagen.

C:\cert-test\example-ca.Registrierung cer...
Warnung:Zugriff auf den Cacerts-Keystore-Verwenden Sie die Option cacerts
Keytool-Fehler: java.lang.Exception:Das Zertifikat wurde nicht importiert. alias<example-ca>Ist bereits vorhanden

Drücken Sie eine beliebige Taste, um fortzufahren. . .

5. Löschen

Doppelklicken Sie auf "remove-cert.bat", um es auszuführen.

** Ausführungsergebnis **:

Auch als Beispiel bekannt-Ca....
Warnung:Zugriff auf den Cacerts-Keystore-Verwenden Sie die Option cacerts

Drücken Sie eine beliebige Taste, um fortzufahren. . .

Es scheint keine Erfolgsmeldung zu geben. Wenn es nicht registriert ist, schlägt es wie folgt fehl.

Auch als Beispiel bekannt-Ca....
Warnung:Zugriff auf den Cacerts-Keystore-Verwenden Sie die Option cacerts
Keytool-Fehler: java.lang.Exception:alias<example-ca>Ist nicht vorhanden

Drücken Sie eine beliebige Taste, um fortzufahren. . .

Ergänzung

Es scheint, dass es zwei JVM-Muster gibt, "Java 8-basiert" und "Java 11-basiert", abhängig von der Installationszeit von ColdFusion 2018.

In dieser Umgebung warnt mich Java 11, die Option "-cacerts" mit keytool zu verwenden, aber ich konnte sie hinzufügen / entfernen.

Es scheint, dass die Option "-cacerts" exklusiv für "-keystore" ist und Sie den Pfad zur cacerts-Datei nicht angeben müssen. Java 8 verfügt jedoch nicht über diese Option. Wenn Sie den Stapel also in mehreren Umgebungen verwenden möchten, ist es besser, den Pfad im Keystore wie derzeit beschrieben anzugeben.

So vermeiden Sie Warnungen in Java 11

Ich musste lediglich den -keystore"% JRE_HOME% \ lib \ security \ cacerts " Teil jeder Batch-Datei durch -cacerts ersetzen.

Verweise

Recommended Posts

Installieren Sie das CA-Zertifikat auf ColdFusion
Installieren / Ausführen eines eigenständigen Robotersimulators in der wsl2 / docker-Umgebung!
Installieren Sie das Garn im Docker-Image
Installieren Sie das Plug-In in Eclipse
Multiplikation innerhalb eines Ruby-Arrays
Suchen Sie eine Teilmenge in Java
Installieren Sie das Tomcat-Plug-In in Eclipse