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
版权声明:本文为博主原创文章,转载请附上博文链接!
windows下配置apache+https的更多相关文章
- windows下配置apache+php环境
PHP安装 由于windows下php扩展5.6的多余7.0,故以php5.6为开发环境.如果对扩展要求不高,可以使用php7,安装过程类似. 约定: 环境安装目录: D:/phpsetup/ |-- ...
- Windows下配置Apache服务器并支持php
php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php.Python.Java甚至asp等服务端语言,要 ...
- Windows下配置Apache+PHP跑Wordpress拾遗
首先,我很少这么做,因为一旦有跑WAMP的需求,我就直接下一个wamp的安装包就可以了,市面上数不胜数,我一直用的是EasyPHP,不是说它有多好,而是很多年前第一次用后没什么问题,就一直用下来了.这 ...
- CentOS下配置Apache HTTPS
一.安装Apache支持SSL/TLS yum install mod_ssl openssl 二.创建证书 证书(Cerificate)的基本作用是将一个公钥和安全个体(个人.公司.组织等)的名字绑 ...
- Windows 下配置 Apache 支持 https
1.打开cmd ,输入 F: // 切换到Apache安装路径,我的Apache安装目录在 F盘 2.cd F:\Apache\bin 3.set "openssl_conf = F:\A ...
- [Apache系列]怎样在windows下配置apache vhost
找到你的Apache安装目录,下图为小编的Apache安装的目录 2 点击conf文件夹 进入配置目录,找到httpd.conf 文件, 3 打开httpd.conf 文件,如图, 找到地475行, ...
- Windows下配置Apache服务器
第一步:下载最新Apache. 下载网址:http://www.apachehaus.com/cgi-bin/download.plx 第二步:把下载文件解压缩到一个工作目录.D:\Apache 第三 ...
- Ubuntu下配置Nginx HTTPS
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入S ...
- windows Apache 环境下配置支持HTTPS的SSL证书
windows Apache 环境下配置支持HTTPS的SSL证书 1.准备工作 1)在设置Apache + SSL之前, 需要做: 安装Apache, 下载安装Apache时请下载带有SSL版本的A ...
随机推荐
- mysql 存储 2
mysql> create database db1; mysql> use db1; mysql> create table PLAYERS as select * from TE ...
- IIC时序和24C02读写字节时序
一年前刚学51单片机时,接触到了IIC时序和用IIC通信读写AT24C02的学习历程.那时刚刚大一,对数据线时钟线等概念不是很清楚,也没有分清IIC通信的底层时序和写24c02的时序为什么不同. 借着 ...
- 【原创】Arduino制作Badusb实践
1.U盘构造 U盘由芯片控制器和闪存两部分组成. 芯片控制器负责与PC的通讯和识别,闪存用来做数据存储: 闪存中有一部分区域用来存放U盘的固件,它的作用类似于操作系统,控制软硬件交互:固件无 ...
- Java的URL类(二)
转:https://www.cnblogs.com/brokencolor/p/8575440.html Java的URL类(二) 实例: Java 通过HttpURLConnection Post方 ...
- 匹配URL
使用一个不错的正则表达式来配对一个正确的url. string reg = @"(?i)(http://|https://)?(\w+\.){1,3}(com(\.cn)?|cn|net|i ...
- 基于CBOW网络手动实现面向中文语料的word2vec
最近在工作之余学习NLP相关的知识,对word2vec的原理进行了研究.在本篇文章中,尝试使用TensorFlow自行构建.训练出一个word2vec模型,以强化学习效果,加深理解. 一.背景知识: ...
- Day02_Python基础学习今日总结
1.模块(库):是别人写好的函数封装成一个名字,内部有丰富的功能可以直接调用.分为标准库和第三方库.标准库直接导入即可使用,而第三方库需要下载安装才能用. 2.在项目中导入库时,自建的文件名不能喝库名 ...
- javamail发邮件
使用JavaMail发送一封简单邮件的步骤:(1)创建代表邮件服务器的网络连接信息的Session对象.(2)创建代表邮件内容的Message对象(3)创建Transport对象.连接服务器.发送Me ...
- iview中,table组件在缩进时产生的bug。
问题描述: 在父元素因为缩进的关系撑开时,table组件不会因为父元素的撑开而自适应,问题如图 解决办法:在父一级的组件中使用table {width: 100% !important},强制使表格宽 ...
- Java实现inputstream流的复制
获取到一个inputstream后,可能要多次利用它进行read的操作.由于流读过一次就不能再读了,而InputStream对象本身不能复制,而且它也没有实现Cloneable接口,所以得想点办法. ...