Apache+SSL,apache反向代理https请求

需求是服务器上正式环境安装的apache2.2,只用于http请求的反向代理,https的没有开启。今天在本地测试安装了apache,配置了对于https请求的反向代理。

1.下载带有ssl的apache安装程序

	我安装的是apache2.2.25,不同版本配置步骤可能不一样。不过一定要记得下载带有ssl模块的版本,我下载如下:
	httpd-2.2.25-win32-x86-openssl-0.9.8y.msi

2. 安装apache

   安装都选默认就好了,安装完后,确认conf文件夹下有openssl.cnf

3.配置文件修改

	1. 去掉前面的# #LoadModule ssl_module modules/mod_ssl.so

	2. 去掉下面语句的注释,目的是使用Apache自带的ssl配置文件httpd-ssl.conf进行修改,减少我们的工作量。 #Include conf/extra/httpd-ssl.conf

4.创建自己的ssl证书,用于服务器的话,之后我会去购买阿里云的ssl付费证书使用

  1. 打开cmd,到apache的安装目录下bin文件夹下,运行
openssl req -config ..\conf\openssl.cnf -new -out my-server.csr 

中间需要输入几个问题答案:
Enter PEM pass phrase: (输入密码)
Verifying - Enter PEM pass phrase: (再次输入密码)
Country Name (2 letter code) [AU]: (国家缩写)
State or Province Name (full name) [Some-State]: (省名)
Locality Name (eg, city) []: (城市名)
Organization Name (eg, company) [Internet Widgits Pty Ltd]: (组织名或者公司名)
Organizational Unit Name (eg, section) []: (部门名)
Common Name (eg, YOUR name) []: (服务器域名或IP地址)
Email Address []: (邮件地址)
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: (密码)
An optional company name []: (公司别名)

全部完成之后会生成一个my-server.csr和 privkey.pem 文件在bin文件夹中.要注意查看有没有生成,我第一次因为不是管理员权限运行的cmd,没有生成相应的文件

  1. 运行下面的语句,需要输入密码,就是上面自己设置的密码
openssl rsa -in privkey.pem -out my-server.key
  1. 生成一个3650以后过期的证书
openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 3650
  1. 运行
openssl x509 -in my-server.cert -out my-server.der.crt -outform DER

全部运行完后会在bin目录下生成6个文件,建议在conf下面新建一个cert文件夹存放这些文件

.cnt
privkey.pem
my-server.der.crt
my-server.scr
my-server.key
my-server.cert

5.设置apache支持ssl

  1. 打开conf/httpd,释放两个被注释了的文件
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
  1. 打开conf/extra/httpd-ssl.conf,更改如下配置
SSLMutex  default
SSLCertificateFile "[Apache安装目录]/conf/cert/my-server.der.crt"
SSLCertificateKeyFile "[Apache安装目录]/conf/cert/my-server.key"

这两个后缀.crt和.key结尾的文件,就是之前用命令行生成,放到了conf/cert/文件夹下面的文件,使用绝对路劲把这两个参数配置好

6.测试

  1. 保存配置文件
  2. 在开始菜单中运行Apache的Test Configuration工具, 检查设置文件是否正确
  3. 启动apache,访问 https://localhost ,能出现It works!,则配置成功

7.启动中可能出现的报错

我遇到启动不成功的情况
将httpd-ssl文件中的这个注释:
#SSLSessionCache “shmcb:C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)”
#SSLSessionCacheTimeout 300

8.设置反向代理

<VirtualHost _default_:443>
SSLEngine on
SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLProxyVerify none
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  ProxyPreserveHost On
  ProxyRequests Off
  ProxyPass /yuyin http://localhost:8080/YuYinTest/user/
  ProxyPassReverse /yuyin http://localhost:8080/YuYinTest/user/
</VirtualHost>    

完毕,收工

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值