如何在使用虚拟主机时在XAMPP中使用https(SSL)

Zak*_*ziz 43 apache xampp ssl https virtualhost

我正在我的本地机器上编写一个php应用程序,并想测试SSL是否正常工作.请耐心等待,因为这是我第一次使用SSL.

到目前为止,这就是我所做的:

  1. 创建了SSL证书.我按照教程的第一部分来创建证书.
  2. 我将server.crt文件导入chrome.
  3. 除去在前面的分号;extension=php_openssl.dllphp.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>
    
    Run Code Online (Sandbox Code Playgroud)

我通常会通过输入来访问我的项目 http://project_one.localhost

当我尝试通过键入https://project_one.localhostchrome 来访问我的项目时,我会自动转发到https://project_one.localhost/xampp/(就好像XAMPP根本不能识别https://project_one.localhost为子域并将其视为我正在输入的那样https://localhost)任何想法我搞砸了?

注意:

  • LoadModule ssl_module modules/mod_ssl.sohttpd.conf文件中没有注释

rig*_*uff 39

SSL中的SSL HTTPS://url.here/完全由Apache处理,与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>
Run Code Online (Sandbox Code Playgroud)

(上面的路径来自我的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>
Run Code Online (Sandbox Code Playgroud)


tom*_*ans 7

这可能是一个老问题,但无论如何我都会在这里提出答案以供将来参考

我正在使用XAMPP 3.2.1,编译于2013年5月7日

以便VirtualHostSSL在同一时间在这里是我做的.(我正在使用Windows 7)

  1. 您的Windows HOST文件必须已经设置好
  2. httpd-ssl.conf位于xampp\apache\conf\extra

我刚刚复制_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>
Run Code Online (Sandbox Code Playgroud)


小智 6

这是一个简单的步骤.

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

打开httpd.conf

并启用ssl扩展(从行中删除#)

LoadModule ssl_module modules/mod_ssl.so
Run Code Online (Sandbox Code Playgroud)

  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>
Run Code Online (Sandbox Code Playgroud)