Konfigurieren von SSL für Apache HTTPd, das auf VMWare VM installiert ist: Falsches Zertifikat

484
cactuschibre

Ich baue einen Reverse Proxy-Server mit Apache HTTPd 2.4.6 unter CentOS 7 (neu installiert) auf einer VMWare-VM .

Ich folgte auch den Empfehlungen von https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI (gefunden im Posting https://stackoverflow.com/questions/14830133/apache-httpd-virtual-host-ssl-certificate ). Und poste https://stackoverflow.com/questions/36050140/centos-httpd-ssl-404-error .

  • Apache-HTTPd-tatsächliche Konfiguration (/etc/httpd/conf.d/my.domain.com.conf):

    LoadModule ssl_module modules/mod_ssl.so  Listen 443  NameVirtualHost *:443 SSLStrictSNIVHostCheck off  <VirtualHost *:443>  ServerName my.domain.com  SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RCA+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/pki/tls/certs/my.domain.com.cer SSLCertificateKeyFile /etc/pki/tls/private/my.domain.com.key SSLCertificateChainFile /etc/pki/ca-trust/source/anchors/chained.pem  ProxyPreserveHost On  <LocationMatch "/myapp"> ProxyPass http://X.X.X.X:8080/app ProxyPassReverse http://X.X.X.X:8080/app </LocationMatch> </VirtualHost> 

Die Zertifikatskettendatei chained.pementhält meine Zertifizierungsstelle.

Diese Zertifizierungsstelle ist der Aussteller des Zertifikats my.domain.com.cerund der in diesem Schlüssel gespeicherte private Schlüssel my.domain.com.keyist korrekt.

Diese Zertifizierungsstelle wurde hinzugefügt /etc/pki/tls/certs/ca-bundle.crt

Die Syntax ist korrekt ( httpd -t).

> Problem: Wenn ich my.domain.com anschlage, wird das VMWare-Zertifikat anstelle meines gesendet ...

  • Wenn ich von einem Client eine Anfrage mit curl an meine Domain mache:

    curl -v https://my.domain.com -k  (...)  * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt CApath: none * TLSv1.2 (OUT), TLS header, Certificate Status (22): (...) * Server certificate: * subject: C=US; L=Palo Alto; OU=VMware; CN=VMware; emailAddress=none@vmware.com * start date: May 24 09:24:16 2017 GMT * expire date: May 24 09:24:16 2018 GMT * issuer: C=US; L=Palo Alto; OU=VMware; CN=VMware; emailAddress=none@vmware.com * SSL certificate verify result: self signed certificate (18), continuing anyway. 
  • Von einem Client aus, wenn ich eine Anfrage an meine Domain mit Chrome erstelle:

Auf dem HTTPd-Server nichts über SSL-Fehler in httpd-Debug-Protokollen ...:

[Wed Mar 14 05:31:00.572506 2018] [ssl:info] [pid 2715] AH02200: Loading certificate & private key of SSL-aware server 'my.domain.com:443' [Wed Mar 14 05:31:00.573282 2018] [ssl:debug] [pid 2715] ssl_engine_pphrase.c(506): AH02249: unencrypted RSA private key - pass phrase not required [Wed Mar 14 05:31:00.573333 2018] [ssl:info] [pid 2715] AH01914: Configuring server my.domain.com:443 for SSL protocol [Wed Mar 14 05:31:00.574085 2018] [ssl:debug] [pid 2715] ssl_engine_init.c(872): AH01904: Configuring server certificate chain (2 CA certificates) [Wed Mar 14 05:31:00.574105 2018] [ssl:debug] [pid 2715] ssl_engine_init.c(406): AH01893: Configuring TLS extension handling [Wed Mar 14 05:31:00.574116 2018] [ssl:debug] [pid 2715] ssl_engine_init.c(919): AH02232: Configuring RSA server certificate [Wed Mar 14 05:31:00.574356 2018] [ssl:debug] [pid 2715] ssl_util_ssl.c(489): AH02412: [my.domain.com:443] Cert matches for name 'my.domain.com' [subject: emailAddress=xxxx@yyy.fr,CN=my.domain.com ....... / notbefore: Mar 12 14:58:57 2018 GMT / notafter: Mar 9 14:58:57 2028 GMT] [Wed Mar 14 05:31:00.574369 2018] [ssl:debug] [pid 2715] ssl_engine_init.c(974): AH02236: Configuring RSA server private key [Wed Mar 14 05:31:00.640615 2018] [ssl:info] [pid 2715] AH02200: Loading certificate & private key of SSL-aware server 'my.domain.com:443' [Wed Mar 14 05:31:00.641115 2018] [ssl:debug] [pid 2715] ssl_engine_pphrase.c(506): AH02249: unencrypted RSA private key - pass phrase not required [Wed Mar 14 05:31:00.641180 2018] [ssl:info] [pid 2715] AH01914: Configuring server my.domain.com:443 for SSL protocol [Wed Mar 14 05:31:00.641646 2018] [ssl:debug] [pid 2715] ssl_engine_init.c(872): AH01904: Configuring server certificate chain (2 CA certificates) [Wed Mar 14 05:31:00.641656 2018] [ssl:debug] [pid 2715] ssl_engine_init.c(406): AH01893: Configuring TLS extension handling [Wed Mar 14 05:31:00.641666 2018] [ssl:debug] [pid 2715] ssl_engine_init.c(919): AH02232: Configuring RSA server certificate [Wed Mar 14 05:31:00.642392 2018] [ssl:debug] [pid 2715] ssl_util_ssl.c(489): AH02412: [my.domain.com:443] Cert matches for name 'my.domain.com' [[subject: emailAddress=xxxx@yyy.fr,CN=my.domain.com ....... / notbefore: Mar 12 14:58:57 2018 GMT / notafter: Mar 9 14:58:57 2028 GMT] [Wed Mar 14 05:31:00.642492 2018] [ssl:debug] [pid 2715] ssl_engine_init.c(974): AH02236: Configuring RSA server private key [Wed Mar 14 05:31:00.656912 2018] [proxy:debug] [pid 2717] proxy_util.c(1843): AH00925: initializing worker http://X.X.X.X:8080/app shared [Wed Mar 14 05:31:00.656964 2018] [proxy:debug] [pid 2717] proxy_util.c(1885): AH00927: initializing worker http://X.X.X.X:8080/app local [Wed Mar 14 05:31:00.656984 2018] [proxy:debug] [pid 2717] proxy_util.c(1936): AH00931: initialized single connection worker in child 2717 for (X.X.X.X) 

Kein / etc / httpd / logs / ssl_error-Protokoll.

Ich verstehe nicht, warum meine Kunden das WMWare-Zertifikat anstelle meines Zertifikats erhalten. :(

Anmerkungen: Es ist kein iptables-Dienst installiert und die Standarddatei /etc/httpd/conf.d/ssl.conf ist nicht geladen (in ssl.conf.bak umbenannt).

3

1 Antwort auf die Frage

1
cactuschibre

OK. Gefunden Nach langen Tagen Kopfschmerzen.

  • Wenn Sie keine überbrückte Verbindung verwenden, muss die Domäne my.domain.coman die VM-IP-Adresse und nicht an die Host-IP-Adresse gebunden sein. Überprüfen Sie es in Ihrem Domänencontroller.
  • Bearbeiten Sie die Datei config.xml(Windows-Standardpfad:) C:\ProgramData\VMware\hostd\config.xml, um den Block zu löschen: <!-- Remove the following node to disable SSL --> <ssl> <!-- The server private key file --> <privateKey>C:\ProgramData\VMware\ssl/rui.key</privateKey> <!-- The server side certificate file --> <certificate>C:\ProgramData\VMware\ssl/rui.crt</certificate>--> <!-- The SSL version to use --> <!-- <sslVersion>all</sslVersion> --> </ssl>

Die von der VM verwalteten Zertifikate werden zuerst angezeigt. Sie können auch die ändern rui.crtund rui.keyaber sie werden auf alle VMs angewendet werden. Ich will es nicht.

  • VMWare muss gestoppt werden und der WMWare Workstation Service muss neu gestartet werden (Befehlszeilen: net stop VMwareHostddann net start VMwareHostd)
  • Führen Sie die VM erneut aus. Erledigt!