Мой сайт, скажем, abc.com работал по http, а не по https. После добавления этих строк в httpd.conf,
ServerName abc.com
DocumentRoot "c:/wamp/www/"
Listen 443
SSLEngine on
SSLCertificateFile C:/MyPath/MyCertcer
SSLCertificateKeyFile C:/MyPath/MyKey.key
SSLCACertificateFile C:/MyPath/MyCAA.crt
Мой сайт начал работать на https, но остановился на http. Эти настройки не находятся внутри Virtual-Host или Directory. Я получаю:
Bad Request
Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Apache/2.4.9 (Win64) OpenSSL/1.0.1g PHP/5.5.12 Server at abc.com Port 443
В моем конфиге вверху у меня также есть
Listen 0.0.0.0:80
Listen [::0]:80
Подойдет несколько конфигураций httpd.conf. Например:
Listen 80
Listen 443
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
ServerName abc.com
DocumentRoot "c:/wamp/www/"
</VirtualHost>
<VirtualHost *:443>
ServerName abc.com
DocumentRoot "c:/wamp/www/"
SSLEngine on
SSLCertificateFile C:/MyPath/MyCert.cer
SSLCertificateKeyFile C:/MyPath/MyKey.key
</VirtualHost>
Если у вас уже есть сертификат и запущен SSL, вы можете просто перенаправить все запросы на защищенный сайт SSL:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName example.com
DocumentRoot c:/wamp/www/
SSLEngine on
SSLCertificateFile C:/MyPath/MyCertcer
SSLCertificateKeyFile C:/MyPath/MyKey.key
SSLCACertificateFile C:/MyPath/MyCAA.crt
</VirtualHost>
Подробнее см. https://wiki.apache.org/ httpd / RedirectSSL