如果要搭建Apache的反向代理并实现Https网站的访问,按照下面的步骤:
1、下载apache httpd
下载可以在官网上找到,不过需要注意的是因为涉及https的访问,所以需要下载那种包含SSL的,不然后面就会失败的哦。
2、安装
没啥特别的
3、生成各种证书(https)
如果下载的是带有SSL的那种apache那么就可以在安装目录下找到openssl.exe这个文件,我们用这个文件来生成https访问是需要的证书
1)生成服务器Apache的RSA私钥server.key:
命令:openssl genrsa -out server.key 1024
2)生成签署申请server.csr:
命令:openssl req -new -out server.csr -key server.key -config ..confopenssl.cnf
注:这一步会需要输入,国家,地区(省市),公司,部门,姓名,邮箱的信息,还有一个密码。我胡填的,但是好像也没用,简单易记就行。
3)通过CA为网站服务器签署证书:
命令1-生成CA私钥:openssl genrsa -out ca.key 1024
命令2-利用CA私钥生成CA的自签署证书:openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config ..confopenssl.cnf
注:这步要填写信息,同上
命令3-CA为网站服务器签署证书:
在bin目录下创建demoCA,里面创建文件index.txt和serial以及文件夹newcerts,serial内容为01,其他为空。再执行下面的命令,生成server.crt文件
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..confopenssl.cnf
4)复制文件:
将server.crt,server.key,ca.key复制到apache的conf文件夹下。原因:待查。
4、修改配置文件:
1)修改httpd.conf
a、去掉如下语句的注释:
- LoadModule proxy_module modules/mod_proxy.so
- LoadModule proxy_connect_module modules/mod_proxy_connect.so
- LoadModule proxy_http_module modules/mod_proxy_http.so
- LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
- LoadModule rewrite_module modules/mod_rewrite.so
- LoadModule ssl_module modules/mod_ssl.so
b、添加如下语句:
- <VirtualHost *:80>
- <IfModule mod_proxy.c>
- ProxyRequests Off
- SSLProxyEngine on
- </IfModule>
- ServerName 127.0.0.1:80
- ServerAdmin webmaster@localhost
- ProxyPass / https://login.taobao.com/
- ProxyPassReverse / https://login.taobao.com/
- </VirtualHost>
c、确认使用ssl.conf
即有如下语句:
- <IfModule mod_ssl.c>
- Include conf/ssl.conf
- </IfModule>
2)修改ssl.conf
a、确保证书们的位置路径正确,我只用了下面三个:
- SSLCertificateFile conf/server.crt
- SSLCertificateKeyFile conf/server.key
- SSLCertificateChainFile conf/ca.crt
b、注意ServerName的定义:
- <VirtualHost *:443>
- ServerName 127.0.0.1:443
5、重启Apache,访问测试,访问http://127.0.0.1/时,浏览器会显示https://login.taobao.com/的页面。
Leave a reply