问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/linysuccess/article/details/141126967

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

第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步:启用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配置

编辑xampp\apache\conf\extra\httpd-ssl.conf文件。

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

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

SSLHonorCipherOrder on 

# 排除不安全的v3协议
SSLProtocol all -SSLv3
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下的内容了。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号