it-swarm.com.de

Wie erlaube ich HTTPS für Apache auf localhost?

Ich wurde gebeten, HTTPS mit einem selbstsignierten Zertifikat auf Apache auf localhost einzurichten, aber wie mache ich das eigentlich? Ich habe überhaupt keine Ahnung.

187
KennC.

Ich habe es gerade versucht - ich musste einen Entwicklungscode auf meinem localhost Apache unter Windows testen . Das war WAAAY schwieriger als es sein sollte. Aber hier sind die Schritte, die es geschafft haben, nach langem Hairpulling zu funktionieren ...

Ich habe festgestellt, dass meine Apache-Installation openssl.exe enthält, was hilfreich ist. Wenn Sie keine Kopie haben, müssen Sie diese herunterladen. Meine Kopie befand sich im Ordner Apache2\bin, Auf den ich unten verweise.

Schritte:

  1. Stellen Sie sicher, dass Sie über Schreibrechte für Ihren Apache Conf-Ordner verfügen
  2. Öffnen Sie eine Eingabeaufforderung im Ordner Apache2\conf
  3. Art
    ..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
  4. Sie können alle Fragen leer lassen, außer:

    • PEM-Passphrase: ein temporäres Passwort wie "Passwort"
    • Common Name: Der Hostname Ihres Servers

  5. Wenn dies abgeschlossen ist, geben Sie ein
    ..\bin\openssl rsa -in blarg.pem -out blarg.key

  6. Generieren Sie Ihr selbstsigniertes Zertifikat, indem Sie Folgendes eingeben:
    ..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365

  7. Öffnen Sie die Apache-Datei conf\httpd.conf Und stellen Sie sicher, dass das SSL-Modul aktiviert ist. Am Anfang dieser Zeile darf kein Hash stehen:
    LoadModule ssl_module modules/mod_ssl.so

  8. Einige Apache-Installationen speichern die SSL-Konfiguration in einer separaten Datei. Stellen Sie in diesem Fall sicher, dass die SSL-Konfigurationsdatei enthalten ist. In meinem Fall musste ich diese Zeile auskommentieren:
    Include conf/extra/httpd-ssl.conf

  9. In der SSL-Konfiguration httpd-ssl.conf Musste ich die folgenden Zeilen aktualisieren:

    • Aktualisieren
      SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
      zu
      SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
      (Die Klammern im Pfad verwirren das Modul, daher müssen wir sie umgehen.)
    • DocumentRoot - Legen Sie dies auf den Ordner für Ihre Webdateien fest
    • ServerName - Der Hostname des Servers
    • SSLCertificateFile "conf/blarg.cert"
    • SSLCertificateKeyFile "conf/blarg.key"

  10. Starten Sie Apache neu.

  11. Versuchen Sie, https://localhost/ In Ihren Browser zu laden.

Hoffentlich haben Sie es so weit geschafft. Fühlen Sie sich frei, diesen Beitrag mit anderen hilfreichen Informationen zu aktualisieren.

(Screenshots mit freundlicher Genehmigung von Neil Obremski und seinem hilfreichen Artikel - obwohl jetzt ziemlich veraltet.)

127
Simon East

Ich benutze dafür ngrok ( https://ngrok.com/ ). ngrok ist ein Befehlszeilenprogramm und erstellt einen Tunnel für localhost. Es wird sowohl eine http- als auch eine https-Verbindung hergestellt. Nach dem Herunterladen muss der folgende Befehl ausgeführt werden:

ngrok http 80

(In Version 2 lautet die Syntax: ngrok http 80. In Version 2 kann jeder Port getunnelt werden.)

Nach wenigen Sekunden werden zwei URLs angezeigt:

http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com

Jetzt zeigen beide URLs auf den localhost.

56
sudip

hier ist der einfachste Weg, dies zu tun

kopieren Sie zuerst diese server.crt & server.key Dateien (im Anhang zu finden) in Ihr Apache/conf/ssl-Verzeichnis

öffnen Sie dann die Datei httpd.conf und fügen Sie die folgende Zeile hinzu

Listen 80
Listen 443

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot "d:/wamp/www"  #your wamp www root dir
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "d:/wamp/bin/Apache/Apache2.4.4/conf/ssl/server.crt"
    SSLCertificateKeyFile "d:/wamp/bin/Apache/Apache2.4.4/conf/ssl/server.key"
</VirtualHost>
23
Anil Gupta

Zum Schutz der Sicherheit von Informationen, die an und von Ihrem Webserver gesendet werden, empfiehlt es sich, die Verschlüsselung der Kommunikation zwischen Clients und Server zu aktivieren. Dies wird häufig als [~ # ~] ssl [~ # ~] bezeichnet.

Richten wir also HTTPS mit einem selbstsignierten Zertifikat für Apache2 ein. Ich werde die Schritte auflisten, denen Sie folgen sollten:

  • Installieren Sie den Apache2-Webserver auf Ihrem Computer. Für Linux-Rechner öffnen Sie das Terminal und geben Sie

Sudo apt-get installiert Apache2

  • Nach erfolgreicher Installation überprüfen Sie den Status des Apache2-Dienstes, indem Sie den Befehl ausführen

Sudo-Dienst Apache2-Status

Es sollte ausgegeben werden

Apache2 service status

  • Zum Browser navigieren und eingeben

http: // localhost: 8

Stellen Sie sicher, dass Sie die Standardseite für Apache2 wie folgt erhalten.

default output of Apache2

  • Zum Verschlüsseln einer Webverbindung benötigen wir ein Zertifikat von CA (Certificate Authority) oder wir können selbstsignierte Zertifikate verwenden. Erstellen Sie mit dem folgenden Befehl ein selbstsigniertes Zertifikat.

openssl req -x509 -newkey rsa: 2048 -keyout mykey.key -out mycert.pem -days 365 -nodes

Bitte füllen Sie die Informationen entsprechend aus.

create self signed certificate using openssl

mykey.key und mycert.pem sollten in Ihrer derzeitigen Arbeitsweise erstellt werden Verzeichnis.

  • Es wäre schön, wenn wir Zertifikate und Schlüssel an einen gemeinsamen Ort verschieben würden und es für den Apache2-Webserver einfach wäre, sie zu finden. Führen wir also die folgenden Befehle aus

Sudo cp mycert.pem/etc/ssl/certs

Sudo cp mykey.key/etc/ssl/private

  • Lassen Sie uns den SSL-Modus auf Ihrem Server aktivieren

Sudo a2enmod ssl

Es sollte so ausgegeben werden

enable ssl

  • Lassen Sie uns Apache2 so konfigurieren, dass selbstsigniertes Zertifikat und Schlüssel verwendet werden, die wir oben generiert haben.

Sudo vi /etc/Apache2/sites-available/default-ssl.conf

Bitte suchen Sie diese beiden Zeilen und ersetzen Sie sie durch Ihre Zertifikats- und Schlüsselpfade.

Initiale

default-conf

Finale

after config changes

  • Aktivieren Sie die Site

cd/etc/Apache2/sites-available /

Sudo a2ensite default-ssl.conf

  • Starten Sie den Apache2-Dienst neu

Sudo-Dienst Apache2 neu starten

  • Überprüfen Sie den Apache2-Webserver auf HTTPS. Öffnen Sie Ihren Browser erneut und geben Sie ein

https: // localhost: 44

Es sollte so etwas mit einer Warnung ausgegeben werden, dass die Seite, die Sie anzeigen möchten, nicht sicher ist, da wir den Server mit selbstsigniertem Zertifikat konfiguriert haben.

enter image description here

  • Herzlichen Glückwunsch, Sie haben Ihren Apache2 mit HTTPS-Endpunkt konfiguriert. Klicken Sie jetzt auf advanced -> add exception -> Sicherheitsausnahme bestätigen , Sie sehen wieder die Standardseite.

page after adding exception

9
Dinesh Kumar

Windows + Apache 2.4, zum Beispiel:

  1. kommentieren Sie ssl_module in Ihrer httpd.conf - Datei aus.

    LoadModule ssl_module modules/mod_ssl.so
    
  2. hören Sie den 443-Port genau wie den 80-Port in Ihrer httpd.conf - Datei.

    Listen 80
    Listen 443
    
  3. kommentar entfernen Fügen Sie virtuelle Hosts in Ihre httpd.conf - Datei ein.

    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf
    
  4. fügen Sie VirtualHost in Ihrem conf/extra/httpd-vhosts.conf

    <VirtualHost _default_:443>
        DocumentRoot "D:/www"  #your site directory path
        ServerName localhost
        #ServerAlias localhost.com localhost2.com
        SSLEngine on
        SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
        SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
        <Directory "D:/www">
            Options -Indexes +FollowSymLinks +ExecCGI
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    

nur die Zeilen mit den Portnummern 443 und SSL...... unterscheiden sich von der normalen http-Konfiguration.

speichern Sie die Konfigurationsdatei und starten Sie den Apache-Dienst neu. Dann können Sie https: // localhost / besuchen

Der Webbrowser warnt Sie, dass er beim ersten Mal nicht sicher ist. Wählen Sie einfach Weiter.

9
cuixiping

Es ist eigentlich ganz einfach, vorausgesetzt, Sie haben eine OpenSSL-Installation zur Hand. (Auf welcher Plattform bist du?)

Vorausgesetzt, Sie arbeiten unter Linux/Solaris/Mac OS/X, Vans Apache SSL/TLS-Mini-HOWTO hat eine hervorragende Anleitung, die ich hier nicht wiedergeben werde.

In der Zusammenfassung heißt es jedoch, dass Sie ein selbstsigniertes Zertifikat erstellen müssen. Da Sie Apache für localhost ausführen, vermutlich für Entwicklungszwecke (d. H. Nicht für einen öffentlichen Webserver), wissen Sie, dass Sie dem selbstsignierten Zertifikat vertrauen und die Warnungen, die Ihr Browser auf Sie auslöst, ignorieren können.

8
Pete Clark

Dies sollte mit Ubuntu funktionieren, Mint ähnlich wie mit Apache2

Es ist eine nette Anleitung, also folge dieser

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-Apache-for-ubuntu-14-04

und lass deine ssl.conf so oder so ähnlich

<VirtualHost _default_:443>
        ServerAdmin [email protected]
        ServerName localhost
        ServerAlias www.localhost.com

        DocumentRoot /var/www


    SSLEngine on
    SSLCertificateFile /etc/Apache2/ssl/Apache.crt
    SSLCertificateKeyFile /etc/Apache2/ssl/Apache.key

du kannst es haben.

Hoffe diese Hilfe für Linuxer

4
ackuser

Es ist sehr einfach,

führen Sie einfach die folgenden Befehle aus

Sudo a2enmod ssl

Sudo service Apache2 restart

Sudo a2ensite default-ssl.conf

Das war's, du bist fertig.

Wenn Sie SSL erzwingen möchten (immer https verwenden), bearbeiten Sie die Datei:

Sudo nano /etc/Apache2/sites-available/000-default.conf

und füge diese eine Zeile hinzu

<VirtualHost *:80>
        . . .

        Redirect "/" "https://your_domain_or_IP/"

        . . .
</VirtualHost>

dann neu starten

Sudo service Apache2 restart
2
Rifaideen

2019 Update

Ich poste diese Antwort, da ich selbst damit zu kämpfen hatte und Chrome aktualisiert ihre Sicherheit mit dem Erfordernis Alternativer Antragstellername die viele Posts nicht haben, da dies nicht erforderlich war, als sie als Antwort gepostet wurden. Ich gehe davon aus, dass WAMP bereits installiert ist.

SCHRITT 1

Laden Sie OpenSSL Light herunter und installieren Sie


SCHRITT 2 (Optional)

Dieser Teil ist zwar optional, erleichtert aber später das Ausführen von Befehlen. Wenn Sie diesen Schritt überspringen, müssen Sie den vollständigen Pfad zu openssl.exe angeben, in dem Sie den Befehl ausführen. Wenn Sie es bevorzugen, aktualisieren Sie den Pfad openssl.exe unter Umgebungsvariablen.

Umgebungsvariablen -> Systemvariablen -> Pfad -> Bearbeiten -> Neu -> c:\Programme\OpenSSL-Win64\bin


SCHRITT 3

Erstellen Sie einen Ordner mit dem Namen "key" im Verzeichnis c:/wamp64/bin/Apache/apache2.4.27(your version number)/conf/.

Erstellen Sie eine Konfigurationsdatei für Ihre Zertifizierungsstelle MyCompanyCA.cnf mit Inhalten (Sie können diese an Ihre Bedürfnisse anpassen):

[ req ]
distinguished_name  = req_distinguished_name
x509_extensions     = root_ca

[ req_distinguished_name ]
countryName             = Country Name (2 letter code)
countryName_min         = 2
countryName_max         = 2
stateOrProvinceName     = State or Province Name (full name)
localityName            = Locality Name (eg, city)
0.organizationName      = Organization Name (eg, company)
organizationalUnitName  = Organizational Unit Name (eg, section)
commonName              = Common Name (eg, fully qualified Host name)
commonName_max          = 64
emailAddress            = Email Address
emailAddress_max        = 64

[ root_ca ]
basicConstraints            = critical, CA:true

Erstellen Sie die Erweiterungskonfigurationsdatei MyCompanyLocalhost.ext für Ihr Webserver-Zertifikat:

subjectAltName = @alt_names
extendedKeyUsage = serverAuth

[alt_names]
DNS.1   = localhost
DNS.2   = mycy.mycompany.com


SCHRITT 4

Führen Sie diese Befehle in der angegebenen Reihenfolge aus, um den Schlüssel und die Zertifikate zu generieren:

openssl req -x509 -newkey rsa:2048 -out MyCompanyCA.cer -outform PEM -keyout MyCompanyCA.pvk -days 10000 -verbose -config MyCompanyCA.cnf -nodes -sha256 -subj "/CN=MyCompany CA"
openssl req -newkey rsa:2048 -keyout MyCompanyLocalhost.pvk -out MyCompanyLocalhost.req -subj /CN=localhost -sha256 -nodes
openssl x509 -req -CA MyCompanyCA.cer -CAkey MyCompanyCA.pvk -in MyCompanyLocalhost.req -out MyCompanyLocalhost.cer -days 10000 -extfile MyCompanyLocalhost.ext -sha256 -set_serial 0x1111

Als Ergebnis erhalten Sie MyCompanyCA.cer , MyCompanyLocalhost.cer und MyCompanyLocalhost.pvk Dateien.


SCHRITT 5

Installieren Sie MyCompanyCA.cer unter

Systemsteuerung -> Benutzerzertifikate verwalten -> Vertrauenswürdige Stammzertifizierungsstellen -> Zertifikate

Um MyCompanyLocalhost.cer zu installieren, doppelklicken Sie einfach darauf.


SCHRITT 6

Öffne c:/wamp64/bin/Apache/apache2.4.27(your version number)/conf/httpd.conf und und entferne das # aus dem Kommentar der folgenden 3 Zeilen:

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so


SCHRITT 7

Öffnen Sie c:/wamp64/bin/Apache/apache2.4.37/conf/extra/httpd-ssl.conf Und ändern Sie alle Parameter in die folgenden:

Directory "c:/wamp64/www"
DocumentRoot "c:/wamp64/www"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "c:/wamp64/bin/Apache/apache2.4.27/logs/error.log"
TransferLog "c:/wamp64/bin/Apache/apache2.4.27/logs/access.log"
SSLCertificateFile "c:/wamp64/bin/Apache/apache2.4.27/conf/key/MyCompanyLocalhost.cer"
SSLCertificateKeyFile "c:/wamp64/bin/Apache/apache2.4.27/conf/key/MyCompanyLocalhost.pvk"
SSLSessionCache "shmcb:c:/wamp64/bin/Apache/apache2.4.27/logs/ssl_scache(512000)"
CustomLog "c:/wamp64/bin/Apache/apache2.4.27/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Hinweis: Dies ist der schwierige Teil. Wenn Sie beim Bearbeiten dieser Datei einen kleinen Fehler machen, funktioniert SSL nicht. Erstellen Sie eine Kopie davon, bevor Sie sie bearbeiten.


SCHRITT 8

Starten Sie Wamp und Chrome neu. Localhost ist jetzt sicher: https: // localhost

1
CodeWarrior

tl; dr

ssh -R youruniquesubdomain:80:localhost:3000 serveo.net

Auf Ihre lokale Umgebung kann über https://youruniquesubdomain.serveo.net zugegriffen werden

Serveo ist das Beste

  • Keine Anmeldung.
  • Keine Installation.
  • Hat HTTPS.
  • Weltweit erreichbar.
  • Sie können einen benutzerdefinierten Fix, eine Unterdomäne, angeben.
  • Sie können es selbst hosten, sodass Sie Ihre eigene Domain verwenden und zukunftssicher sein können, selbst wenn der Service ausfällt.

Ich konnte nicht glauben, als ich diesen Service fand. Es bietet alles und ist am einfachsten zu bedienen. Wenn es für jedes Problem ein so einfaches und schmerzloses Werkzeug gäbe ...

1
totymedli

Dieses HowTo für CentOS war einfach zu befolgen und dauerte nur ca. 5 Minuten: https://wiki.centos.org/HowTos/Https

Ich werde hier nicht jeden Schritt detaillieren, aber die Hauptschritte sind:

1.) Installieren Sie das openssl-Modul für Apache, falls es noch nicht installiert ist

2.) Generieren Sie ein selbstsigniertes Zertifikat

- Zu diesem Zeitpunkt sollten Sie in der Lage sein, https: // localhost erfolgreich zu besuchen

3.) Richten Sie bei Bedarf einen virtuellen Host ein

1
KayakinKoder

Dies funktionierte unter Windows 10 mit Apache24:

1 - Fügen Sie dies am Ende von C:/Apache24/conf/httpd.conf Hinzu

Listen 443
<VirtualHost *:443>
    DocumentRoot "C:/Apache24/htdocs"
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"
</VirtualHost>

2 - Fügen Sie die Dateien server.crt Und server.key In den Ordner C:/Apache24/conf/ssl Ein. Sehen Sie andere Antworten auf dieser Seite, um diese 2 Dateien zu finden.

Das ist es!

1
jogi99

Für Benutzer von macOS ist dies eine großartige Anleitung https://getgrav.org/blog/macos-sierra-Apache-multiple-php-versions zum Einrichten Ihrer lokalen Webentwicklungsumgebung. In seinem 3. Teil https://getgrav.org/blog/macos-sierra-Apache-ssl erklärt Andy Miller, wie man Apache mit einem selbstsignierten Zertifikat einrichtet:

Dies ist der Schlüsselbefehl:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

Aber es gibt ein paar Schritte, die Sie befolgen müssen. Sehen Sie sich das an und wünschen Sie viel Glück! ;)

0
tiomno

Ich möchte der sehr guten Antwort von @CodeWarrior noch etwas hinzufügen, das unter Chrome perfekt funktioniert, für Firefox jedoch einen zusätzlichen Schritt benötigt.

Da Firefox keine CA-Zertifikate überträgt, die standardmäßig von Windows verwendet werden, müssen Sie auf about:config Klicken, nach unten zu security.enterprise_roots.enabled Scrollen und auf true ändern.

Jetzt sollte Ihr Zertifikat auch unter Firefox als gültig angesehen werden.

Dies ist natürlich nur zu Entwicklungszwecken, da SSL-Vertrauenswürdigkeit ein kritisches Sicherheitsproblem darstellt. Ändern Sie diese Einstellungen nur, wenn Sie die Auswirkungen kennen.

0
RDev

Hier können Sie Apache unter Windows 10 ausführen. Ich konnte nicht Chrome) dem Zertifikat vertrauen, das in der ersten Antwort von Simon erstellt wurde. Am Ende habe ich PowerShell verwendet, um ein selbstsigniertes Zertifikat zu generieren.

Schritt 1 - Generieren Sie ein selbstsigniertes Zertifikat

In PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My" 1

Schritt 2 - Konfigurieren und Exportieren des Zertifikats

Geben Sie Certificate in die Windows-Suchleiste ein und klicken Sie auf das vorgeschlagene Kontrollfeldelement Manage Computer Certificates.

In dem daraufhin geöffneten Zertifikatverwaltungsprogramm (certlm) sollte nun unter Personal >> Certificates Ein localhost -Schlüssel angezeigt werden.

Ich habe dieses Zertifikat in Trusted Root Certification Authorities Kopiert. Ich bin mir ehrlich gesagt nicht sicher, ob das notwendig ist.

Wählen Sie das neu kopierte Zertifikat aus und doppelklicken Sie darauf (das localhost-Zertifikat). Klicken Sie im Zertifikatmodus auf die Registerkarte Details und dann auf die Schaltfläche Copy to File....

Dadurch wird der Export-Assistent aufgerufen. Ich habe mich entschieden, den privaten Schlüssel zu exportieren. Klicken Sie auf Weiter. Ich habe mich auch für Export all extended properties Entschieden (wieder bin ich mir nicht sicher, ob das notwendig war). Ich habe mich für ein einfaches Passwort (pass) und die Standardverschlüsselung entschieden. Wählen Sie einen Ordner zum Exportieren und benennen Sie die Datei. Sie können die Datei bei Bedarf jederzeit verschieben und umbenennen. Kopieren Sie es der Einfachheit halber in Ihren conf-Ordner unter Ihrer Apache-Installation (in meinem Fall: C:\Apache\conf) Und benennen Sie die Datei myCert (die resultierende Datei ist eine .pfx - Datei) )

Schritt 3 - Konvertieren Sie die Datei .pfx Zur Verwendung mit Apache

Von hier an habe ich im Grunde das Tutorial befolgt hier , aber ich werde hier Anweisungen hinzufügen (angepasst an unsere Einstellungen), falls die Site ausfällt.

Öffnen Sie Ihre Eingabeaufforderung im Ordner /Apache/conf/
Führen Sie die folgenden Befehle aus: Hinweis: Dies setzt voraus, dass Sie openssl.exe Im Ordner bin im Apache-Stammverzeichnis (dies sollte Standard sein)

..\bin\openssl pkcs12 -in myCert.pfx -nocerts -out privateKey.pem

Dadurch werden Sie aufgefordert, ein Kennwort einzugeben. Geben Sie das ein, was Sie für Schritt 2 beim Exportieren der Datei .pfx Eingegeben haben. In meinem Fall ist dies pass. Ich habe das gleiche Passwort für die PEM-Phrase eingegeben und erneut überprüft. Dadurch wird eine neue Datei mit dem Namen privateKey.pem In Ihrem conf-Ordner erstellt.

Führen Sie dann aus

..\bin\openssl rsa -in privateKey.pem -out private.pem

Auch hier werden Sie zur Eingabe eines Passworts aufgefordert (Enter pass phrase for privateKey.pem:). Verwenden Sie das Passwort, das Sie für privateKey.pem Festgelegt haben. (In meinem Fall pass)
In Ihrem Ordner writing RSA key Sollte eine Meldung mit der Aufschrift private.pem Und eine neue Datei mit dem Namen conf/ Angezeigt werden. Dies ist Ihre SSLCertificateKeyFile.

Nun wird das entsprechende Server-Zertifikat generiert. Ausführen:

..\bin\openssl pkcs12 -in myCert.pfx -clcerts -nokeys -out EntrustCert.pem

Dadurch werden Sie aufgefordert, ein Kennwort einzugeben. Geben Sie das ein, was Sie für Schritt 2 beim Exportieren der Datei .pfx Eingegeben haben. Geben Sie es ein und Sie haben jetzt eine Datei mit dem Namen EntrustCert.pem In Ihrem Ordner conf. Dies ist Ihre SSLCertificateFile

Schritt 4 - Konfigurieren Sie httpd.conf

Verwenden Sie die neuen Dateien, die als Schlüssel und Zertifikat Ihres Servers erstellt wurden. Stellen Sie sicher, dass Sie in Ihrem Dokumentenstamm den Speicherort Ihrer Dateien angeben!

ServerName localhost:80
Protocols h2 h2c http/1.1
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

<VirtualHost _default_:443>
  ServerName localhost:443
  DocumentRoot ${SRVROOT}/htdocs/MYSITE
  SSLEngine on
  SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
  SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
</VirtualHost>

Auch in httpd.conf:

  • Stellen Sie sicher, dass LoadModule ssl_module modules/mod_ssl.so Nicht kommentiert ist (kein # Vorne)
  • Kommentar entfernen LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
  • Kommentar entfernen LoadModule http2_module modules/mod_http2.so
  • Kommentar entfernen Include conf/extra/httpd-ssl.conf (HINWEIS: Stellen Sie sicher, dass sich dort die Datei befindet!)

Ich habe auch Curl und Open SSL-Bibliotheken enthalten:

# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"

Diese Module sollten nicht erforderlich sein, aber ich stelle fest, dass ich sie aktiviert habe:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so

Schritt 5 - Config httpd-ssl.conf

Im Ordner extra/ Im Ordner conf/ Sollte eine Datei mit dem Namen httpd-ssl.conf Angezeigt werden.

5a. Ändern Sie das DocumentRoot - Ändern Sie das DocumentRoot vom Standard in das Verzeichnis, in dem sich Ihre Dateien befinden.

5b. Ändern Sie das ServerName - Ändern Sie das ServerName von der Standardeinstellung (so etwas wie www.example.com:443) In localhost:443

5c. Ändern Sie das SSLCertificateFile
Ändern Sie das SSLCertificateFile von der Standardeinstellung (${SRVROOT}/conf/server.crt) In ${SRVROOT}/conf/EntrustCert.pem.

5c. Ändern Sie das SSLCertificateKeyFile
Ändern Sie das SSLCertificateKeyFile von der Standardeinstellung (${SRVROOT}/conf/server.key) In ${SRVROOT}/conf/private.pem.

Alles zusammen im Tag <VirtualHost _default_:443>.

#   General setup for the virtual Host
DocumentRoot "${SRVROOT}/htdocs/MYSITE"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual Host.
SSLEngine on

#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will Prompt again.  Keep
#   in mind that if you have both an RSA and a DSA certificate you
#   can configure both in parallel (to also allow the use of DSA
#   ciphers, etc.)
#   Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt)
#   require an ECC certificate which can also be configured in
#   parallel.
SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
#SSLCertificateFile "${SRVROOT}/conf/server-dsa.crt"
#SSLCertificateFile "${SRVROOT}/conf/server-ecc.crt"

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
#   ECC keys, when in use, can also be configured in parallel
SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-dsa.key"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-ecc.key"

Starten Sie Apache neu

Nachdem Sie diese Änderungen vorgenommen haben, sollten Sie in der Lage sein, Apache neu zu starten und ohne eine Sicherheitswarnung und ein kleines Vorhängeschloss zu https: // localhost zu navigieren!

Secured localhost

Ich hoffe das hilft jemandem! ????

Quellen:
1.) Antwort von Auri Rahimzadeh zur Erstellung eines selbstsignierten Zertifikats
2.) Entrust Datacard - Wie konvertiere ich eine .pfx für die Verwendung mit einem Apache-Server?

0
StephanieQ

Eine andere einfache Methode ist die Verwendung von Python Server in Ubuntu.

  1. Generieren Sie server.xml mit dem folgenden Befehl im Terminal:

    openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

    Hinweis: Angenommen, Sie haben openssl installiert.

  2. Speichern Sie den folgenden Code in einer Datei mit dem Namen simple-https-server.py Im Verzeichnis any, in dem Sie den Server ausführen möchten.

    import BaseHTTPServer, SimpleHTTPServer
    import ssl
    
    httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
    httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
    httpd.serve_forever()
    
  3. Führen Sie den Server vom Terminal aus:

    python simple-https-server.py

  4. Besuchen Sie die Seite unter:

    https://localhost:4443

Zusätzliche Hinweise::

  1. Sie können port in der Datei simple-https-server.py In der Zeile ändern

    httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)

  2. Sie können localhost in Ihre IP ändern in der gleichen Zeile oben:

    httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)

    und greifen Sie auf die Seite auf jedem Gerät zu, mit dem Ihr Netzwerk verbunden ist. Dies ist sehr praktisch in Fällen wie "Sie müssen die HTML5-GeoLocation-API in einem Mobiltelefon testen und Chrome schränkt die API nur in sicheren Verbindungen ein".

Inhalt: https://Gist.github.com/dergachev/7028596

http://www.piware.de/2011/01/creating-an-https-server-in-python/

0
Asim K T