XAMPP Apache配置SSL证书,支持HTTPS访问

本文的测试结果基于XAMPP 5.6.28软件,相关的版本信息如下:

Windows Version:  Home  64-bit
XAMPP Version: 5.6.28
Control Panel Version: 3.2.2  [ Compiled: Nov 12th 2015 ]

第1步:购买SSL证书

可以从阿里云购买SSL证书,然后下载对应服务器(如Apache)相关的证书文件。

现假设您购买了绑定域名abc.com的SSL证书,下载下来的证书文件将会是:

abc.com.key
abc.com_public.crt
abc.com_chain.crt

第2步:确保443端口没有被占用

netstat -ano | findstr 443

在这里插入图片描述

图中,最后一列,就是占用端口的进程号。可以taskkill强制结束占用进程:

taskkill /f /pid 2916

第2步:httpd.conf启用SSL

编辑xampp/apache/conf/httpd.conf,将如下2行前面的#注释符去掉,以加载SSL模块,并引入相关配置。

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

第3步:httpd-ssl.conf配置

一个配置好的httpd-ssl.conf完整文件(删除了其他注释)内容如下:

Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4

SSLHonorCipherOrder on 

SSLProtocol all -SSLv3 #排除不安全的v3协议
SSLProxyProtocol all -SSLv3

SSLPassPhraseDialog  builtin

SSLSessionCache "shmcb:D:/xampp/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

# SSLUseStapling On

<VirtualHost _default_:443>

DocumentRoot "D:/data_path/web"
ServerName dev.abc.com:443
ServerAdmin admin@example.com
ErrorLog "D:/xampp/apache/logs/error443.log"
TransferLog "D:/xampp/apache/logs/access443.log"

SSLEngine on

ProxyPass /tc http://127.0.0.1:8989
ProxyPassReverse /tc http://127.0.0.1:8989

SSLCertificateFile "D:/xampp/apache/cert/abc.com_public.crt"
#SSLCertificateFile "conf/ssl.crt/server.crt"

SSLCertificateKeyFile "D:/xampp/apache/cert/abc.com.key"
#SSLCertificateKeyFile "conf/ssl.key/server.key"

#SSLCertificateChainFile "D:/xampp/apache/cert/abc.com_chain.crt"
#SSLCACertificatePath "conf/ssl.crt"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

<Directory "D:/xampp/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

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

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

</VirtualHost>                                  
一些解释

这里为abc.com下面的子域名dev.abc.com配置了SSL证书。

DocumentRoot设置你需要通过HTTP访问的文档根路径。

ProxyPass和ProxyPassReverse额外配置了一个反向代理,将对dev.abc.com/tc路径下的所有请求,转到本机的8989端口上(比如Tomcat在该端口上提供HTTP服务)。

以上配置正确,重启XAMPP Apache服务,就可以https方式访问DocumentRoot下的内容了。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XAMPP是一个集成的开发环境,包含Apache、MySQL等组件,常用于Windows和Linux系统上进行Web开发。配置SSL证书可以为您的XAMPP服务器提供安全的HTTPS连接,确保数据传输的安全性。下面是使用XAMPP配置SSL证书的一般步骤: 1. 下载SSL证书:首先,你需要获取一个有效的SSL证书。这通常来自Let's Encrypt、Cloudflare或你的证书颁发机构(CA)。对于免费证书,Let's Encrypt是常用的选择。 2. 安装SSL证书:在XAMPP的安装目录下(通常是`"C:\xampp\apache"`或`"/opt/lampp/apache"`),找到`conf/extra/httpd-ssl.conf`文件,这个文件用来启用SSL。 3. 配置SSL虚拟主机:在`httpd-ssl.conf`中,创建一个新的虚拟主机来处理HTTPS请求。例如: ``` <VirtualHost _default_:443> DocumentRoot "your-site-root" ServerName your-domain.com SSLEngine on SSLCertificateFile "path/to/your/cert.pem" SSLCertificateKeyFile "path/to/your/key.pem" SSLCertificateChainFile "path/to/chain.pem" (如果有链式证书) </VirtualHost> ``` 请将`your-site-root`替换为你的网站实际文件夹路径,`your-domain.com`替换成你的域名。 4. 加载模块:确保`SSLSocketLayer`和`SSLProtocol`模块已被加载,如果没有,请添加到`httpd.conf`文件: ```apache LoadModule ssl_module modules/mod_ssl.so SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 ``` 5. 重启XAMPP:完成配置后,重启Apache服务使更改生效。在命令行里输入`sudo /Applications/XAMPP/xamppfiles/bin/stop`(Windows)或`sudo ./xamppctl stop`(Linux),然后`sudo /Applications/XAMPP/xamppfiles/bin/start`(Windows)或`sudo ./xamppctl start`(Linux)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值