簡體   English   中英

與MAMP(4.0.6)同時運行SSL和非SSL站點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM