Apache Web Server vs. Zertifikat

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Apache Web Server vs. Zertifikat

Postby IgorVan » 18. May 2015 14:55

Guten Tag,
ich habe folgenden Apache Web Server *httpd-2.4.12-win32-VC11 + modules-2.4-win32-VC11* heruntergeladen, und auf D: entpackt.
das ganze auf einem WindowsServer 2012 R2
die httpd.conf angepasst *Pfade, verweis auf JK_mod, etc...* ,
A-Record einrichten lassen,
auf der Firewall das Port forewarding eingerichtet,
mit http von extern und intern getestet => in Ordnung
als Service installiert. *CMD httpd.exe -k*

jetzt möchte ich ein Zertifikatsignieranforderung (CSR) für ein goDaddy-Zertifikat erstellen, nur bekomme ich das nicht hin.

Dienst Apache2.4 ist gestartet
öffne CMD im Verzeichnis D:\ApacheWebServer\Apache24\bin openssl.exe
in der openssl-SHELL gebe ich folgendes ein ==> req -new -newkey rsa:2048 -nodes -keyout IhreDomain.key -out IhreDomain.csr
*statt IhreDomain habe ich die tatsächliche Domain eingegeben ;-)*
In der httpd.conf ist SSL-Module noch deaktiviert *#*
es kommt zu folgender Meldung: ==> Unable to load config info from c:/openssl-1.0.1m-win32/ssl/openssl.cnf error in req

warum wird auf C: .... zugegriffen, wo ist dieser Pfad hinterlegt, habe leider nichts gefunden....?
wo liegt mein Fehler, was habe ich übersehen?
bin nicht so der Profi, aber versuche es ;-)

mfg IgorVan
IgorVan
 
Posts: 8
Joined: 18. May 2015 14:33
Operating System: WIN2012

Re: Apache Web Server vs. Zertifikat

Postby glitzi85 » 20. May 2015 23:21

Das wird aus OPENSSL_CONF (Environment Variable) ausgelesen, wenn die nicht gesetzt ist wird ein default verwendet. In deiner Struktur sollte die config hier liegen Apache24\conf\openssl.cnf.

Ich kenn ich mit der OpenSSL-Shell nicht aus, ich verwende das immer direkt von der CLI aus. In dem Fall sieht das ganze dann halt so aus:

Code: Select all
openssl.exe req -config ..\conf\openssl.cfg -new -newkey rsa:2048 -nodes -keyout IhreDomain.key -out IhreDomain.csr


Ansonten müsstest du glaub vorher einfach die Variable setzen (C:\Apache24 durch deinen Pfad ersetzen):

Code: Select all
set OPENSSL_CONF=C:\Apache24\conf\openssl.cnf
openssl.exe
req -new -newkey rsa:2048 -nodes -keyout IhreDomain.key -out IhreDomain.csr
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: Apache Web Server vs. Zertifikat

Postby IgorVan » 21. May 2015 13:03

vielen Dank,
habe die Variable gesetzt und hat dann ohne Probleme funktioniert.

habe jezt von goDaddy 2 crt files für Apache bekommen gd_bundle-g2-g1.crt und 443999cb426a3762.crt
habe die Pfade in der httpd-ssl.conf angepasst
SSLCertificateFile "d:/ApacheWebServer/Apache24/bin/443999cb426a3762.crt"
SSLCertificateKeyFile "d:/ApacheWebServer/Apache24/bin/domaine.com.key"
SSLCACertificatePath "D:/ApacheWebServer/Apache24/bin/gd_bundle-g2-g1.crt"

wenn ich jetzt über CMD httpd.exe starte, erhalte ich folgende Fehlermeldung
D:\ApacheWebServer\Apache24\bin>httpd.exe
AH00526: Syntax error on line 167 of D:/ApacheWebServer/Apache24/conf/extra/httpd-ssl.conf:
SSLCACertificatePath: directory 'D:/ApacheWebServer/Apache24/bin/gd_bundle-g2-g1.crt' does not exist

die Datei(en) liegen aber auf diesem Pfad.
habe Apache 2.4.12 installiert.

was kann hierzu der Fehler sein?
IgorVan
 
Posts: 8
Joined: 18. May 2015 14:33
Operating System: WIN2012

Re: Apache Web Server vs. Zertifikat

Postby Nobbie » 21. May 2015 14:10

>SSLCACertificatePath: directory 'D:/ApacheWebServer/Apache24/bin/gd_bundle-g2-g1.crt' does not exist

Steht doch alles drin: "directory" .... does not exist - die Variable SSLCACertificatePath erwartet einen Verzeichnisnamen, keinen Dateinamen. Siehe http://httpd.apache.org/docs/2.2/mod/mo ... ficatepath
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Re: Apache Web Server vs. Zertifikat

Postby IgorVan » 21. May 2015 16:00

hmmm...
habe eigentlich nur die Beispiel-Config zu SSLCACertificatePath umgeändert.
Dort wird auch die crt.Datei angeführt.
Warum den SSLCACertificatePath, weil von GoDaddy das so gewünscht wird.

Apache Version 2.4.8+
Directive Path to Enter
SSLCertificateFile Certificate file path
SSLCertificateKeyFile Key file path
SSLCACertificatePath Intermediate bundle path


# Certificate Authority (CA):
# Set the CA certificate verification path where to find CA
# certificates for client authentication or alternatively one
# huge file containing all of them (file must be PEM encoded)
# Note: Inside SSLCACertificatePath you need hash symlinks
# to point to the certificate files. Use the provided
# Makefile to update the hash symlinks after changes.
#SSLCACertificatePath "c:/Apache24/conf/ssl.crt"
SSLCACertificatePath "D:/ApacheWebServer/Apache24/bin/gd_bundle-g2-g1.crt"
#SSLCACertificateFile "D:/ApacheWebServer/Apache24/bin/gd_bundle-g2-g1.crt"
#SSLCACertificateFile "c:/Apache24/conf/ssl.crt/ca-bundle.crt"

habe jetzt folgendes versucht *Blindflug nicht so gut*

#SSLCACertificatePath "c:/Apache24/conf/ssl.crt"
#SSLCACertificatePath "D:/ApacheWebServer/Apache24/bin/gd_bundle-g2-g1.crt"
SSLCACertificateFile "D:/ApacheWebServer/Apache24/bin/gd_bundle-g2-g1.crt"
#SSLCACertificateFile "c:/Apache24/conf/ssl.crt/ca-bundle.crt"

Httpd.exe lässt sich dann starten, komme jetzt über https://localhost/ auf die Seite ==> It works!

So lassen oder habe ich etwas übersehen?
IgorVan
 
Posts: 8
Joined: 18. May 2015 14:33
Operating System: WIN2012

Re: Apache Web Server vs. Zertifikat

Postby Nobbie » 21. May 2015 19:50

Keine Ahnung, ich habe Dir nur die Fehlermeldung erklärt. Ich selbst mache nichts mit SSL.
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Re: Apache Web Server vs. Zertifikat

Postby glitzi85 » 21. May 2015 22:27

Nicht so lassen, stimmt nämlich nicht. Doku lesen hilft: http://httpd.apache.org/docs/2.4/mod/mod_ssl.html

SSLCACertifcatePath erwartet einen Pfad zu einem Verzeichnis in dem ein oder mehrere CA-Zertifikate hinterlegt sind
SSLCACertificateFile erwartet einen Pfad zu einer Datei in dem ein odere mehrere CA-Zertifikate aneinandergehängt sind

Beide Direktiven beziehen sich auf die Authentifizierung von Clients (Browser) am Server mittels Zertifikaten. Was du willst ist die Authentifizierung des Servers am Client (im Prinzip)!

Das hier ist das richtige: http://httpd.apache.org/docs/2.4/mod/mo ... echainfile

Ergo: Einfach das CRT und die Chain in eine Datei zusammenbasteln (einfach in einem Texteditor öffnen und beides hintereinander in eine neue Datei kopieren) und diese mit SSLCertifcateFile angeben.

Edit: Wenn es jetzt klappt liegt das vermutlich nur daran dass bei dir das Intermediate von GoDaddy im Browser bereits installiert ist. Ist aber nicht immer der Fall, also das Intermediate immer mit angeben!
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 46 guests