簡體   English   中英

使用虛擬主機時如何在 XAMPP 中使用 https (SSL)

[英]How do I use https (SSL) in XAMPP while using virtual hosts

我正在本地機器上編寫一個 php 應用程序,想測試一下 SSL 是否正常工作。 請耐心等待,因為這是我第一次使用 SSL。

到目前為止,這就是我所做的:

  1. 創建了一個 SSL 證書。 我按照教程的第一部分創建了證書。
  2. 我將server.crt文件導入到 chrome 中。
  3. 去掉了php.ini中;extension=php_openssl.dll php.ini的分號(參考
  4. 基於頁面編輯了我的httpd-vhosts.conf文件。 該文件的相關部分如下。 這是完整的文件: http://pastebin.com/k6Jh2eR6
     <VirtualHost *> DocumentRoot "C:\Users\user_name\Documents\project_one" ServerName project_one.localhost SSLEngine on SSLCertificateFile "conf/ssl.crt/server.crt" SSLCertificateKeyFile "conf/ssl.key/server.key" <Directory "C:\Users\user_name\Documents\project_one"> AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>

我通常會通過輸入http://project_one.localhost來訪問我的項目

當嘗試通過在 chrome 中輸入https://project_one.localhost來訪問我的項目時,我會自動轉發到https://project_one.localhost/xampp/ (好像 XAMPP 無法識別https://project_one.localhost作為子域完全並將其視為我正在輸入https://localhost )知道我在哪里搞砸了嗎?

筆記:

  • LoadModule ssl_module modules/mod_ssl.sohttpd.conf文件中取消注釋

SSL,的HTTPS://url.here/品種,完全由阿帕奇處理,無關與PHP,或任何的PHP的擴展/模塊,或任何php.ini設置。

典型的SSL Enabled VirtualHost看起來像這樣,至少包含這些部分......

<VirtualHost *:443>
    DocumentRoot "C:/WampDeveloper/Websites/www.example.com/webroot"
    ServerName www.example.com
    ServerAlias example.com

    SSLEngine On

    SSLCertificateFile "C:/WampDeveloper/Websites/www.example.com/certs/public.crt"
    SSLCertificateKeyFile "C:/WampDeveloper/Websites/www.example.com/certs/private.key"

    <Directory "C:/WampDeveloper/Websites/www.example.com/webroot">
        Options All
        AllowOverride All
        order allow,deny
        allow from all
    </Directory>

</VirtualHost>

(上面的路徑來自我的WampDeveloper Pro設置,Xampp會略有不同)

您的<VirtualHost *>行有問題。 它需要一個端口號,對於HTTPS:// URL,它總是443,與之前的IP地址或星號組合。 如果使用星號,還有NameVirtualHost *:443行......

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs"
    ServerName localhost
</VirtualHost>
<VirtualHost *:443>
    DocumentRoot "C:\Users\user_name\Documents\project_one"
    ServerName project_one.localhost
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:\Users\user_name\Documents\project_one">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:\Users\user_name\Documents\project_two"
    ServerName project_two.localhost
    <Directory "C:\Users\user_name\Documents\project_two">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

這可能是一個老問題,但無論如何我都會在這里提出答案以供將來參考

我正在使用XAMPP 3.2.1,編譯於2013年5月7日

我這樣做是為了同時啟用帶有SSL VirtualHost (我正在使用Windows 7)

  1. 您的Windows HOST文件必須已經設置好
  2. 轉到位於xampp\\apache\\conf\\extra httpd-ssl.conf

我剛剛復制了_default_ virtualhost並添加了我的配置。 我刪除了所有關於較短的注釋的注釋,並將其粘貼在默認的virtualHost下面,只需更改DocumentRootservername然后重新啟動apache即可。

<VirtualHost *:443>
    DocumentRoot "***path/to/your/project}***"
    ServerName ***yourdomain***
    ServerAdmin admin@example.com
    ErrorLog "C:/xampp/apache/logs/error.log"
    TransferLog "C:/xampp/apache/logs/access.log"
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "C:/xampp/apache/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>

    BrowserMatch "MSIE [2-5]" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0

    CustomLog "C:/xampp/apache/logs/ssl_request.log" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

這是一個簡單的步驟。

  1. 轉到C:\\ xampp \\ apache \\ conf

打開httpd.conf

並啟用ssl擴展從行中刪除#

 LoadModule ssl_module modules/mod_ssl.so 

  1. 轉到C:\\ xampp \\ apache \\ conf \\ extra

打開httpd-vhosts.conf

添加新虛擬主機或編輯現有主機

 <VirtualHost *:443> DocumentRoot "C:/xampp/htdocs/PROJECTNAME" ServerName www.pl.f24sdev.com <Directory C:/xampp/htdocs/PROJECTPATH> AllowOverride All Order Deny,Allow Allow from all </Directory> SSLEngine on SSLCertificateFile "conf/ssl.crt/server.crt" SSLCertificateKeyFile "conf/ssl.key/server.key" </VirtualHost> 

您使用的是哪個版本的Apache? NameVirtualHost在2.4版本中不可用。

取消注釋httpd.conf中Include conf/extra/httpd-ssl.conf的行並添加以下內容(根據xampp的路徑修復路徑)。 這將啟用https://localhost

<IfModule ssl_module>
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crlss phrase on stdout.
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:E:/PROGRA\~1/AMPPS/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300
Mutex default

<VirtualHost _default_:443>
DocumentRoot "E:/Program Files/AMPPS/www"
ServerName localhost:443
ServerAdmin you@127.0.0.1
ErrorLog "E:/Program Files/AMPPS/apache/logs/ssl_error.log"
TransferLog "E:/Program Files/AMPPS/apache/logs/ssl_access.log"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "E:/Program Files/AMPPS/apache/conf/ssl_crt/server.crt"
#SSLCertificateFile "E:/Program Files/AMPPS/apache/conf/server-dsa.crt"
SSLCertificateKeyFile "E:/Program Files/AMPPS/apache/conf/ssl_key/server.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "E:/Program Files/AMPPS/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog "E:/Program Files/AMPPS/apache/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>
</IfModule>

如果你想讓其他域如project_one.localhost有安全的http連接,那么在httpd.conf或httpd-vhosts.conf中添加以下虛擬主機(必須包含在httpd.conf中)

<IfModule ssl_module>

<VirtualHost 127.0.0.1:443>
<Directory "e:/program files/ampps/www/project_one.localhost">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName project_one.localhost
ServerAlias project_one.localhost
ScriptAlias /cgi-bin/ "e:/program files/ampps/www/project_one.localhost/cgi-bin/"
DocumentRoot "e:/program files/ampps/www/project_one.localhost"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "E:\Program Files\AMPPS/apache/conf/ssl_crt/project_one.localhost.crt"
SSLCertificateKeyFile "E:\Program Files\AMPPS/apache/conf/ssl_key/project_one.localhost.key"
ErrorLog "E:/Program Files/AMPPS/apache/logs/project_one.localhost_ssl_error.log"
TransferLog "E:/Program Files/AMPPS/apache/logs/project_one.localhost_ssl_access.log"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "e:/program files/ampps/www/project_one.localhost/cgi-bin/">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
CustomLog "E:/Program Files/AMPPS/apache/logs/project_one.localhost_ssl_request.log" \
    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
</IfModule>

注意:您必須在hosts文件 127.0.0.1 project_one.localhost 添加一個條目

# to use ssl

<VirtualHost *:443>
    DocumentRoot "D:/xampp/htdocs/httpsProject"
    DirectoryIndex index.php
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"

    <Directory "D:/xampp/htdocs/httpsProject"
    Options All
    AllowOverride All
    Require all grated
    </Directory>
</VirtualHost>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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