[英]Running SSL and non-SSL sites simultaneously with MAMP (4.0.6)
要啟用SSL,我已經在httpd.conf中取消了以下注釋:
# Secure (SSL/TLS) connections
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf
我保持不變的httpd-ssl.conf文件本身,並在希望默認看到它們的位置為自簽名SSL證書創建了.crt和.key文件:
SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"
SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"
回到主要的httpd.conf中,我已經為要使用SSL的站點創建了VirtualHost,並進行了如下配置以最終使其正常工作:
NameVirtualHost *
<VirtualHost *>
DocumentRoot "/Users/jonnott/Documents/sslsite1.dev"
ServerName sslsite1.dev:443
ServerAlias www.sslsite1.dev
SSLEngine on
SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"
SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"
</VirtualHost>
該SSL網站現在可以正常工作。
但是,我的問題是,現在每當我嘗試訪問任何本地非SSL主機時,都會出現此錯誤:
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.
這些其他非SSL站點在httpd.conf中的配置如下:
<VirtualHost *>
DocumentRoot "/Users/jonnott/Documents/site2.dev"
ServerName site2.dev
ServerAlias www.site2.dev
</VirtualHost>
我想念/做錯了什么?
我認為在閱讀以下內容后,我已經很清楚了:
http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts2
在啟動VirtualHost指令之前,我需要在httpd.conf中同時使用它們:
NameVirtualHost *:80
NameVirtualHost *:443
..,然后每個VirtualHost必須是特定於端口的:
<VirtualHost *:80>
DocumentRoot "/Users/jonnott/Documents/Projects/site1"
ServerName site1.dev:80
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/Users/jonnott/Documents/Projects/site1"
ServerName site1.dev:443
SSLEngine on
SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"
SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"
</VirtualHost>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.