windows下配置apache+https

通过https反向代理映射到http地址,可实现以https的方式,访问普通的http网站。
主要涉及到以下三个配置文件的修改:
httpd.conf
httpd-ssl.conf
httpd-vhosts.conf
具体实现步骤:
1. 修改conf/httpd.conf
取消ssl及proxy相关注释
#LoadModule ssl_module modules/mod_ssl.so (去掉前面的#号)
#Include conf/extra/httpd-ssl.conf (去掉前面的#号)
#LoadModule proxy_module modules/mod_proxy.so (去掉前面的#号)
#LoadModule proxy_http_module modules/mod_proxy_http.so (去掉前面的#号)
2. 生成证书
cmd进入命令行,进入apache安装目录的bin目录。

2.1 设置OPENSSL_CONFIG配置
执行命令:set OPENSSL_CONF=..\conf\openssl.cnf

2.2 生成服务端的key文件

执行命令:openssl genrsa -out server.key 1024

完成后,会在bin目录下生成server.key文件
2.3 生成签署申请
执行命令:openssl req -new -out server.csr -key server.key

完成后,会在bin目录下生成server.csr文件,其中 Common Name <eg,YOUR name>[] 需要与配置文件中的ServerName一致,否则apache启动时将会报错。
2.4 生成CA的key文件
执行命令:openssl genrsa -out ca.key 1024

完成后,会在目录bin下生成ca.key文件
2.5 生成CA自签署证书
执行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt

完成后,会在目录bin下生成ca.crt文件,此处填写的信息与2.3步中类似。
2.6 生成CA的服务器签署证书
执行命令:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

此处如果没有创建好相关目录,将会报如下错误:

根据提示,手动创建相关目录:
在bin下新建demoCA文件夹
bin/demoCA
在demoCA下新建index.txt
bin/demoCA/index.txt
在demoCA下新建serial.txt,其内容为01,重命名删除.txt后缀
bin/demoCA/serial
在demoCA下新建newcert文件夹
bin/demoCA/newcerts
完成后,会在bin目录下生成server.crt文件。demoCA目录的最终结构如下:

3. 修改conf/extra/httpd-ssl.conf文件
3.1 修改https端口号
根据需要修改httpd-ssl.conf的默认端口号"443",这里将所有的443修改为"6443",同时修改ServerName。
具体如下:
Listen 6443
<VirtualHost _default_:6443>
ServerName localhost
提示:此处如果保持https默认的443端口,则访问的时候,无需再加端口号。
3.2 修改相关证书路径
在apache安装目录的conf目录下,新建一个key目录,名称随意,然后将bin目录中的相关证书复制到key目录中。key目录最终的文件结构如下:

接着修改conf/extra/httpd-ssl.conf文件中的如下内容:
SSLCertificateFile "xxx/conf/key/server.crt"
SSLCertificateKeyFile "xxx/conf/key/server.key"
SSLCACertificateFile "xxx/conf/key/ca.crt"
#SSLVerifyClient require (去掉前面的#号,进行客户端验证时需要)
#SSLVerifyDepth 1 (去掉前面的#号,把10改为1,进行客户端验证时需要)
4. 重启apache
在浏览器中,输入https://localhost:6443,如果页面出现提示 It works! ,则说明https配置成功了。如图:

5. 项目部署方式
修改conf/extra/httpd-vhosts.conf,新增内容如下:
NameVirtualHost *:6443
注意:
httpd-vhosts.conf配置文件中原有的NameVirtualHost *:80不要修改,下面新增一行即可。
NameVirtualHost *:6443
5.1 以https的方式部署项目
在conf/extra/httpd-vhosts.conf配置文件中,新增如下内容:
<VirtualHost *:6443>
ServerName localhost
DocumentRoot D:/javapro/bms
SSLEngine on
SSLProxyEngine on
SSLCertificateFile "D:/myplatform/Apache2.2/conf/key/server.crt"
SSLCertificateKeyFile "D:/myplatform/Apache2.2/conf/key/server.key"
<Directory "/">
Options None
AllowOverride All
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
上面的配置含义是,在浏览器中输入https://localhost:6443,即可访问DocumentRoot对应目录下的项目。
5.2 以反向代理的方式部署项目
5.2.1 以二级目录的方式部署反向代理
此时,被代理的虚拟机,必须要设置别名,否则,首页之外的其它url,将无法实现代理。
在conf/extra/httpd-vhosts.conf配置文件中,新增如下内容:
#部署被代理的虚拟机local.bms
<VirtualHost *:80>
ServerName local.bms
DocumentRoot "D:/javapro/bms"
Alias /bms "D:/javapro/bms"
<Directory "/">
Options None
AllowOverride All
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
此处,增加了Alias别名配置,以便通过http://local.bms/bms可以访问到http://local.bms,为后面的反向代理做准备。
#部署反向代理虚拟机
<VirtualHost *:6443>
ServerName localhost
SSLEngine on
SSLProxyEngine on
SSLCertificateFile "D:/myplatform/Apache2.2/conf/key/server.crt"
SSLCertificateKeyFile "D:/myplatform/Apache2.2/conf/key/server.key"
ProxyRequests Off
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass /bms http://local.bms/bms
ProxyPassReverse /bms http://local.bms/bms
</VirtualHost>
上面的配置含义是,将https://localhost:6443/bms的请求,映射到http://local.bms/bms,其中,url结尾处的bms,就相当于一个虚拟的二级目录。
注意:此处被代理的url结尾处,不要加斜杠"/"。
5.2.2 以一级目录的方式部署反向代理
此时,被代理的虚拟机,无需设置别名。
在conf/extra/httpd-vhosts.conf配置文件中,新增如下内容:
#部署被代理的虚拟机local.bms
<VirtualHost *:80>
ServerName local.bms
DocumentRoot "D:/javapro/bms"
<Directory "/">
Options None
AllowOverride All
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
#部署反向代理虚拟机
<VirtualHost *:6443>
ServerName localhost
SSLEngine on
SSLProxyEngine on
SSLCertificateFile "D:/myplatform/Apache2.2/conf/key/server.crt"
SSLCertificateKeyFile "D:/myplatform/Apache2.2/conf/key/server.key"
ProxyRequests Off
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://local.bms/
ProxyPassReverse / http://local.bms/
</VirtualHost>
上面的配置含义是,将https://localhost:6443的请求,映射到http://local.bms
注意:此处被代理的url结尾处,必须要加斜杠"/"。
---------------------
作者:木鱼大叔
来源:CSDN
原文:https://blog.csdn.net/tdcqfyl/article/details/79023431
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/huangcong/p/10230913.html

时间: 2024-08-29 03:12:26

windows下配置apache+https的相关文章

Windows下配置Apache服务器并支持php

php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php.Python.Java甚至asp等服务端语言,要把Apache理解成单独的服务器,并不一定和php搭档,只是和php配合是比较流行的一种组合方式,就比如lamp就是比较流行的网站架构,所以,首先我们来配置Apache,首先让服务器跑起来并能解析静态的html文件 首先我们去官网下载最新版本的Apache,首先来到首页:http://www.apa

windows下配置Apache PHP和MySQL

其实这个网上有很多资源了,但是都是又老又旧的,Apache都是针对2.2的,php也是5.3之前的,mysql也有了很大变化.当然也有WAMP这种集成环境,但我还是喜欢自己鼓捣一番. Apache2.4 下载地址:http://www.apachelounge.com/download/http://www.apachehaus.com/cgi-bin/download.plx Apache更新到2.4了,Apache2.2那会会提供安装包,2.4的时候只有一个压缩包,你只要解压拷贝到你要作为服

windows下面配置apache+https(利用SSL)服务器

1.下载带有openSSL的apache安装包,我下载的为apache_2.2.11-win32-x86-openssl-0.9.8i.msi,安装后确认一下bin路径下的openssl.exe,ssleay32.dll和libeay32.dll,无误进行下一步. 2.修改两个配置文件,一个为conf/httpd.conf,另一个为conf/extra/httpd-ssl.conf (a)修改httpd.conf 为了使apache启动的时候调用ssl的服务,我们需要在配置文件中做一些修改.找到

Windows下配置Apache集成PHP

PHP版本为:php-5.3.28-Win32-VC9-x86.zip 下载,解压;(例如: E:\programs\php5.3.28-VC9) 重命名php.ini-development为php.ini; 打开该文件,修改如下: 因为要用mysql,所以要把mysql模块放开;即将php_mysql.dll打开; 修改apache配置文件: 找到conf下的http.conf文件.增加以下内容: 以上配置完成Apache和PHP的整合. 以下进行测试: 在Apache的htdocs目录下新

在windows下配置apache以cgi方式支持python

Apache配置 在httpd.conf中查找DocumentRoot: 允许目录可以执行cgi: DocumentRoot  "D:\WWW" <Directory />     Options Indexes FollowSymLinks MultiViews ExecCGI     AllowOverride All     Order allow,deny     Allow from all     Require all granted </Directo

[Apache系列]怎样在windows下配置apache vhost

找到你的Apache安装目录,下图为小编的Apache安装的目录 2 点击conf文件夹  进入配置目录,找到httpd.conf 文件, 3 打开httpd.conf 文件,如图, 找到地475行, 或者ctr+f 查找httpd-vhosts.conf 去掉前面的# ps: Include conf/extra/httpd-vhosts.conf(这指的是Apache安装目录下面的conf 文件夹下面的extra下面的httpd-vhosts.conf文件 ,如果你要更改目录也可也,但必须指

windows下配置Apache+PHP+Mysql环境

1.下载相关安装包 Apache下载: http://archive.apache.org/dist/httpd/binaries/win32/ ,选择httpd-2.2.25-win32-x86-no_ssl.msi PHP下载: http://windows.php.net/downloads/releases/archives/ ,选择 php-5.3.5-Win32-VC6-x86.zip MySQL下载: http://downloads.mysql.com/archives/comm

Windows下配置Apache服务器

第一步:下载最新Apache. 下载网址:http://www.apachehaus.com/cgi-bin/download.plx 第二步:把下载文件解压缩到一个工作目录.D:\Apache 第三步:修改/conf/httpd.conf文件. 修改ServerRoot为Apache工作目录:D:/Apache 修改Listen 端口号,这里一定要用没有占用的端口号.由于我的机器80端口已经被占用,我用了81端口. 修改DocumentRoot,把DocumentRoot修改为D:\Apach

windows 下配置 Nginx 常见问题

因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我的系统是win7旗舰版的,到官网下载最新版本 nginx/Windows-1.7.9解压到英文目录下(我刚开始是放到中文目录下的,启动时会有问题,下面常见错误里会讲到). 一.  Nginx配置 找到 conf 目录里的 nginx.conf 文件,配置Nginx #user nobody; #指定nginx进程数 worker_process