
Ich versuche, einen Apache-Server mit aktivierter Client-Zertifizierung einzurichten. Damit können die Kunden mit einem gültigen Client-Zertifikat auf den Inhalt zugreifen.
Nehmen wir an, ich habe den Server als
https://myserver/myservice/
Außerdem muss ich meinen Kunden eine Schnittstelle zur Verfügung stellen, über die sie ihre Client-Zertifikate erhalten können, indem ich ihnen einige Authentifizierungsinformationen zur Verfügung stelle.
https://myserver/myservice/register
Sobald die Upload-Informationen überprüft wurden, wird ein Client-Zertifikat zurückgegeben.
Wenn ich das richtig verstehe, sollte dieser Pfad vom Client-Zertifizierungsmechanismus ausgeschlossen werden, einfach weil er zum Generieren von Zertifikaten verwendet wird. Die Frage ist also, wie kann ich die httpd-Konfiguration angeben, um dies zu erreichen?
Meine aktuelle Konfiguration sieht so aus:
ProxyPass /myservice/register http://localhost:4444/register
<Virtualhost *:443>
ServerName myserver
DocumentRoot /path/to/my/server/root
ProxyPass /myservice/ ajp://localhost:8009/myservice/
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /path/to/server.cert
SSLCertificateKeyFile /path/to/server.key
...
SSLVerifyClient require
SSLVerifyDepth 10
SSLCACertificateFile /path/to/ca.buddle.pem
</Virtualhost>
Mit dieser Konfiguration kann ich das Client-Zertifikat von
http://myserver/myservice/register
dann greife ich darüber auf den Dienst zu. Allerdings habe ich es nicht geschafft, es auf https umzustellen, damit ich den Port 80 schließen kann.
Antwort1
Jetzt habe ich die Lösung, indem ich einfach oder verwende, um den Ziel-URL-Pfad auszuschließen.
<Virtualhost *:443>
ServerName myserver
DocumentRoot /path/to/my/server/root
ProxyPass /myservice/register http://localhost:4444/register
ProxyPass /myservice/ ajp://localhost:8009/myservice/
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /path/to/server.cert
SSLCertificateKeyFile /path/to/server.key
...
SSLVerifyClient require
SSLVerifyDepth 10
SSLCACertificateFile /path/to/ca.buddle.pem
<LocationMatch ^/myservice/register$>
SSLVerifyClient none
</LocationMatch>
</Virtualhost>