Ich wurde gebeten, HTTPS mit einem selbstsignierten Zertifikat auf Apache auf localhost einzurichten, aber wie mache ich das eigentlich? Ich habe überhaupt keine Ahnung.
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:
Apache2\conf
..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Sie können alle Fragen leer lassen, außer:
Wenn dies abgeschlossen ist, geben Sie ein..\bin\openssl rsa -in blarg.pem -out blarg.key
Generieren Sie Ihr selbstsigniertes Zertifikat, indem Sie Folgendes eingeben:..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
Ö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
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
In der SSL-Konfiguration httpd-ssl.conf
Musste ich die folgenden Zeilen aktualisieren:
SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
DocumentRoot
- Legen Sie dies auf den Ordner für Ihre Webdateien festServerName
- Der Hostname des ServersSSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Starten Sie Apache neu.
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.)
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.
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>
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:
Sudo apt-get installiert Apache2
Sudo-Dienst Apache2-Status
Es sollte ausgegeben werden
Stellen Sie sicher, dass Sie die Standardseite für Apache2 wie folgt erhalten.
openssl req -x509 -newkey rsa: 2048 -keyout mykey.key -out mycert.pem -days 365 -nodes
Bitte füllen Sie die Informationen entsprechend aus.
mykey.key und mycert.pem sollten in Ihrer derzeitigen Arbeitsweise erstellt werden Verzeichnis.
Sudo cp mycert.pem/etc/ssl/certs
Sudo cp mykey.key/etc/ssl/private
Sudo a2enmod ssl
Es sollte so ausgegeben werden
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
Finale
cd/etc/Apache2/sites-available /
Sudo a2ensite default-ssl.conf
Sudo-Dienst Apache2 neu starten
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.
Windows + Apache 2.4, zum Beispiel:
kommentieren Sie ssl_module in Ihrer httpd.conf
- Datei aus.
LoadModule ssl_module modules/mod_ssl.so
hören Sie den 443-Port genau wie den 80-Port in Ihrer httpd.conf
- Datei.
Listen 80
Listen 443
kommentar entfernen Fügen Sie virtuelle Hosts in Ihre httpd.conf
- Datei ein.
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
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.
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.
Dies sollte mit Ubuntu funktionieren, Mint ähnlich wie mit Apache2
Es ist eine nette Anleitung, also folge dieser
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
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
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
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
Auf Ihre lokale Umgebung kann über https://youruniquesubdomain.serveo.net zugegriffen werden
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 ...
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
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!
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! ;)
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.
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.
In PowerShell New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
1
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) )
.pfx
Zur Verwendung mit ApacheVon 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
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
:
LoadModule ssl_module modules/mod_ssl.so
Nicht kommentiert ist (kein #
Vorne)LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule http2_module modules/mod_http2.so
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
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"
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!
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?
Eine andere einfache Methode ist die Verwendung von Python Server in Ubuntu.
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.
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()
Führen Sie den Server vom Terminal aus:
python simple-https-server.py
Besuchen Sie die Seite unter:
https://localhost:4443
Zusätzliche Hinweise::
Sie können port in der Datei simple-https-server.py
In der Zeile ändern
httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
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/