Wielokrotnie miałem problem z certyfikatami przypisanymi do IP. Jednak od jakiegoś czasu dostępne jest SNI (Server Name Indication) czyli możliwość rozpoznawanie certyfikatu po nazwie. Metoda nie działa dla bardzo starych przeglądarek ale w zasadzie nikt już z nich nie korzysta.
Przykład z proxy dla Apache 2.2
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on SSLProxyEngine On SSLCACertificateFile /etc/ssl/certs/ca_bundle.crt SSLCertificateFile /etc/ssl/certs/cetyfikat.crt SSLCertificateKeyFile /etc/ssl/private/klucz-certyfikatu.key DocumentRoot /var/www/ RewriteEngine On # Apache 2.4 może wymagać tych dyrektyw
# RequestHeader set X-Forwarded-Proto "https" # RequestHeader set X-Forwarded-Port "443" ServerName www.twojadres.pl ServerAlias twojadres.pl RewriteCond %{HTTPS} off RewriteRule (.*) https://www.twojadres.pl$1 [R,L] AllowEncodedSlashes On ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / https://ip_za_proxy:443/ nocanon ProxyPassReverse / https://ip_za_proxy:443/
</VirtualHost>
Przykład dla zwykłego VirtualHosta Apache 2.2
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on SSLProxyEngine On SSLCACertificateFile /etc/ssl/certs/ca_bundle.crt SSLCertificateFile /etc/ssl/certs/cetyfikat.crt SSLCertificateKeyFile /etc/ssl/private/klucz-certyfikatu.key DocumentRoot /var/www/ RewriteEngine On # Apache 2.4 może wymagać tych dyrektyw
# RequestHeader set X-Forwarded-Proto "https" # RequestHeader set X-Forwarded-Port "443" ServerName www.twojadres.pl ServerAlias twojadres.pl RewriteCond %{HTTPS} off RewriteRule (.*) https://www.twojadres.pl$1 [R,L] </VirtualHost>
Działające przeglądarki:
Mozilla Firefox 2.0 lub nowsze
Opera 8.0 lub nowsze (z włączonym TLS 1.1)
Internet Explorer 7.0 lub nowsze (na Windows Vista, nie na XP)
Google Chrome
Safari 3.2.1 na Mac OS X 10.5.6 lub nowszym