So stellen Sie ein SSL-Zertifikat in einer Windows-Apache-Umgebung bereit, damit die Website https unterstützt

So stellen Sie ein SSL-Zertifikat in einer Windows-Apache-Umgebung bereit, damit die Website https unterstützt

Ich werde nicht über die Verwendung von SSL-Zertifikaten sprechen. Freunde, die sie einsetzen müssen, sollten sie bereits verstanden haben. Kommen wir gleich zur Sache.

Installieren Sie Apache. Laden Sie beim Herunterladen und Installieren von Apache das Apache-Installationsprogramm mit der SSL-Version herunter.

Der erste Schritt besteht natürlich darin, ein Zertifikat zu erhalten.

Ich habe mich bei Tencent Cloud beworben und es war in wenigen Minuten erledigt.

Nachdem die Domänennamenüberprüfung bestanden wurde, laden Sie einfach das Zertifikat herunter

image.png

1_root_bundle.crt (Zertifikatskettendatei)

2_www.domain.com_cert.crt (Zertifikatsdatei)

3_www.domain.com.key (private Schlüsseldatei)

Legen Sie das Zertifikat in die Umgebung. Ich habe es in apache/cert abgelegt. Der Zertifikatsordner wurde von mir selbst erstellt.

Der zweite Schritt besteht darin, die Konfiguration der Serverumgebung zu ändern

Erstens: Suchen Sie die Zeile [LoadModule ssl_module modules/mod_ssl.so]. Wenn davor ein # steht, entfernen Sie es. Wenn nicht, müssen Sie es nicht ändern und können es einfach unverändert lassen.

Zweitens: Suchen Sie die Zeile [Include conf/extra/httpd-ssl.conf]. Wenn davor ein # steht, entfernen Sie es. Wenn nicht, müssen Sie es nicht ändern und können es einfach unverändert lassen.

#Die folgenden drei Zeilen dienen zur Konfiguration der Zertifikatsdatei. Achten Sie darauf, den Pfad und den entsprechenden Dateinamen zu ändern, lassen Sie sich nicht verwirren

SSL-Zertifikatdatei "/phpStudy/PHPTutorial/Apache/cert/2_tktx.nichousha.cc.crt"

SSLCertificateKeyFile "/phpStudy/PHPTutorial/Apache/cert/3_tktx.nichousha.cc.key"

SSLCertificateChainFile "/phpStudy/PHPTutorial/Apache/cert/1_root_bundle.crt"

cart+f Suchen und ersetzen Sie die folgenden Namen nacheinander

Eine andere Möglichkeit besteht darin, das Site-Verzeichnis zu ändern. Ich bin heute in dieses kleine Loch getreten.

Viele Site-Pfade in der Datei sind falsch und müssen geändert werden

SSLOptions +StdEnvVars

</FilesMatch>

<Verzeichnis "C:\phpStudy\WWW">

Beispielsweise lautet der Pfad von WWW \phpStudy\PHPTutorial\WWW. Ich verwende die neue Version von PHPSTUDY, daher lautet der Pfad \phpStudy\PHPTutorial\WWW. Suchen Sie einfach nach dem falschen Ort und ändern Sie ihn stapelweise.

Schritt 3 301-Weiterleitung einrichten

Ich verwende .htaccess

image.png

UmschreibenBase /

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

Fügen Sie einfach diesen Absatz hinzu.

image.png

Der gesamte Vorgang ist relativ einfach. Wenn Sie Fragen haben, können Sie mir eine Nachricht hinterlassen. Die Kommentare werden mir per E-Mail zugesandt, sodass ich schnell antworten kann.

Nachfolgend finden Sie Ergänzungen von anderen Internetnutzern

1. Vorbereitung

1) Bevor Sie Apache + SSL einrichten, müssen Sie Folgendes tun:

Installieren Sie Apache. Laden Sie beim Herunterladen und Installieren von Apache das Apache-Installationsprogramm mit der SSL-Version herunter.

Die von SSL benötigten Dateien befinden sich an den folgenden Speicherorten:

[Apache-Installationsverzeichnis]/modules/ mod_ssl.so

[Apache-Installationsverzeichnis]/bin/ openssl.exe, libeay32.dll, ssleay32.dll, openssl.cnf

[Apache-Installationsverzeichnis]/conf/ openssl.cnf

Erstellen Sie ein SSL-Zertifikat (beachten Sie, dass einige integrierte Umgebungen mit OpenSSL geliefert werden, sich im Bin-Verzeichnis jedoch keine Datei „openssl.cnf“ befindet. Sie müssen die Datei „openssl.cnf“ unter „conf“ in das Bin-Verzeichnis kopieren, aber das Gesamtprinzip ist dasselbe).

2) In der Windows-Umgebung müssen Sie zuerst die Umgebungsvariable OpenSSL festlegen:

Führen Sie den Befehl set OPENSSL_CONF=..\conf\openssl.cnf aus.

Öffnen Sie CMD und gehen Sie zum Bin-Verzeichnis unter dem Apache-Installationsverzeichnis:

Schritt 1 : Führen Sie den Befehl openssl genrsa 1024 >server.key

Hinweis: Die Standardlänge eines RSA-Schlüsselpaars beträgt 1024, was einer ganzzahligen Potenz von 2 entspricht. Je länger der Schlüssel, desto höher die Sicherheit.

Nachdem der Schlüssel server.key generiert wurde, fahren Sie mit Schritt 2 fort.

Schritt 2: Erstellen Sie eine unsignierte Datei server.csr und führen Sie weitere Befehle im Bin-Verzeichnis aus:

openssl req -new -config openssl.cnf -key server.key >server.csr

Hinweis: Wenn Sie den Parameter -config .openssl.cnf nicht hinzufügen, erhalten Sie häufig die Meldung „Konfigurationsinformationen können nicht aus …/ssl/openssl.cnf geladen werden“.

Sie werden dann aufgefordert, eine Reihe von Parametern einzugeben:

Ländername (2-Buchstaben-Code) [AU]:CN ISO-Ländercode (nur zwei Zeichen werden unterstützt)

Name des Staates oder der Provinz (vollständiger Name) [Some-State]:ZJ Provinz

Ortsname (z. B. Stadt) []:HZ Stadt

Name der Organisation (z. B. Unternehmen):

Name der Organisationseinheit (z. B. Abschnitt) []:yiban Name der Organisationseinheit

Allgemeiner Name (z. B. IHR Name) []: localhost:80 Der Domänenname für die Beantragung des Zertifikats (es wird empfohlen, dass er mit dem Servernamen in httpd.conf übereinstimmt)

E-Mail-Adresse []:[email protected] Administrator-E-Mail

Bitte geben Sie die folgenden 'zusätzlichen' Attribute ein, die mit Ihrer Zertifikatsanforderung gesendet werden sollen Ein Challenge-Passwort []: 1234Austauschschlüssel

Ein optionaler Firmenname []:CD

Hinweis: Der allgemeine Name muss mit dem Servernamen in httpd.conf übereinstimmen, sonst wird Apache möglicherweise nicht gestartet.

(Beim Starten von Apache lautet die Fehlermeldung: „CommonName (CN) des Server-RSA-Zertifikats ‚Kedou‘ stimmt NICHT mit dem Servernamen überein!?“) Vervollständigen Sie die signierte server.csr-Konfiguration.

Schritt 3:

Signieren Sie die Server-Zertifikatsdatei server.crt

Führen Sie den Befehl im bin/-Verzeichnis aus:

openssl req -x509 -days 5000 -config openssl.cnf -key server.key -in server.csr >server.crt

Hinweis: Dabei werden der Schlüssel und die Zertifikatsanforderung aus Schritt 1 und 2 verwendet, um das Zertifikat server.crt zu generieren. Der Parameter -days gibt die Gültigkeitsdauer des Zertifikats in Tagen an. x509 gibt an, dass es sich bei dem generierten Zertifikat um ein X.509-Zertifikat handelt.

Schritt 4:

Suchen Sie im Bin-Verzeichnis nach den Dateien server.crt, server.csr und server.key und schneiden Sie sie in das Apache-Conf-Verzeichnis aus.

Schritt 5:

Konfigurieren Sie httpd.conf. Die Datei httpd_ssl.conf im Apache-Verzeichnis conf\extra dient der SSL-Konfiguration und ist Teil von httpd.conf.

Fügen Sie die folgenden zwei Zeilen zu httpd.conf hinzu (entfernen Sie ggf. das Kommentarsymbol „#“ vor der Datei):

Lademodul ssl_module module/mod_ssl.so

Schließen Sie conf/extra/httpd-ssl.conf ein

Schritt 6:

(Hinweis: Die gleichen Teile wurden weggelassen)

Bearbeiten Sie im Verzeichnis conf\extra die Datei httpd_ssl.conf

Hören Sie 443

SSLPassPhraseDialog integriert

SSLSessionCache "dbm:c:/Apache24/logs/ssl_scache"

#SSLSessionCache "shmcb:c:/Apache24/logs/ssl_scache(512000)"

(Bitte überwachen Sie die beiden oben genannten Typen selbst. Wenn einer davon dazu führt, dass der Server nicht gestartet werden kann, wechseln Sie zum anderen.)

SSLSessionCacheTimeout 300

<VirtualHost www.my.com:443>
#DocumentRoot "D:/wamp/bin/apache/apache2.4.9/htdocs"
DocumentRoot "C:/wamp/www/hxq"
Servername www.my.com:443
ServerAlias ​​​​my.com:443
ServerAdmin [email protected]
VerzeichnisIndex index.html index.htm index.php default.php app.php u.php
Fehlerprotokoll logs/beispiel_fehler.log
CustomLog logs/beispiel_zugriff.log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
SSLEngine Ein
SSLCertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/server.crt"
SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.4.9/conf/server.key"
#SSLCertificateChainFile "C:/upupw/Apache2/conf/1_root_bundle.crt"
<FilesMatch "\.(shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unsauberes-herunterfahren \
Downgrade-1.0 Kraftantwort-1.0
<Verzeichnis "C:/wamp/www/hxq">
Optionen FollowSymLinks
ZulassenAlle überschreiben
Befehl erlauben, verweigern
Erlauben von allen
</Verzeichnis>
</VirtualHost>

Das wahrscheinlichste Problem ist das Pfadproblem der Protokolle in http_ssl.conf. Es wird empfohlen, es entsprechend dem physischen Pfad einzustellen.

Schritt 7:

Debuggen und Ausführen von Apache, für Apache. Wenn Sie Apache Server in einer integrierten Umgebung wie xampp, wampserver oder phpstudy starten, wissen Sie möglicherweise nicht, welches Problem mit Ihrem Server aufgetreten ist. Wir empfehlen Ihnen, die Protokolle unter Apache/logs zu überprüfen. Führen Sie auf dieser Grundlage den Befehl httpd im Bin-Verzeichnis mit der Befehlszeile cmd aus. Wenn kein Fehler gemeldet wird, bedeutet dies, dass der Server ordnungsgemäß ausgeführt wird. Andernfalls nehmen Sie Änderungen gemäß den Eingabeaufforderungen vor.

2. Testlauf

Starten Sie den Apahce-Dienst neu und besuchen Sie https://www.my.com/. Fertig!

===========Es ist eine Fehleraggregation aufgetreten==========

1. „Syntaxfehler in Zeile 80 von c:/apache/conf/extra/httpd-ssl.conf:ErrorLog benötigt ein Argument, den Dateinamen des Fehlerprotokolls“ oder „Syntaxfehler in Zeile 99 von c:/apache/conf/extra/httpd-ssl.conf:SSLCertificateFile benötigt ein Argument, SSL-Server-Zertifikatdatei (‚/Pfad/zur/Datei‘ -PEM- oder DER-codiert)“

Lösung: Fügen Sie dem Dateipfad doppelte Anführungszeichen hinzu

2、„Syntaxfehler in Zeile 76 von C:/apache/conf/extra/httpd-ssl.conf:SSLSessionCache: ‚shmcb‘-Sitzungscache wird nicht unterstützt (bekannte Namen: ). Möglicherweise müssen Sie das entsprechende Socache-Modul (mod_socache_shmcb?) laden.“

Lösung:

Öffnen Sie httpd.conf.

Suchen Sie nach LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Entfernen Sie den vorherigen Kommentar.

<<:  Der Grund, warum MySQL die Binlog-Datei manuell registriert und Master-Slave-Anomalien verursacht

>>:  Die Scroll-Ansicht des WeChat-Applets realisiert einen Links-Rechts-Verknüpfungseffekt

Artikel empfehlen

Mysql8.0 verwendet Fensterfunktionen, um Sortierprobleme zu lösen

Einführung in MySQL-Fensterfunktionen MySQL unter...

Beispielcode zur Implementierung einer Upload-Komponente mit Vue3

Inhaltsverzeichnis Allgemeine Entwicklung von Upl...

Centos7-Installation und Konfiguration von Mysql5.7

Schritt 1: Holen Sie sich die MySQL YUM-Quelle Ge...

So aktivieren Sie die JMX-Überwachung über Tomcat

Erstellen Sie eine Simulationsumgebung: Betriebss...

So importieren Sie chinesische Daten in Navicat für SQLite in CSV

In diesem Artikel erfahren Sie zu Ihrer Informati...

5 coole und praktische Einführung in HTML-Tags und -Attribute

Tatsächlich handelt es sich auch hier um einen Cl...

Lösen Sie das Problem inkonsistenter Front- und Back-End-Ports von Vue

Die Front- und Back-End-Ports von Vue sind inkons...

Detaillierte Erklärung zur Verwendung der JavaScript-Paging-Komponente

Die Paginierungskomponente ist eine häufige Kompo...

So verwenden Sie JS WebSocket zur Implementierung eines einfachen Chats

Inhaltsverzeichnis Kurze Umfrage Langfristige Abf...