急活,就学习了一下这个主题的东东,看了很多文章,发现每篇文章只能采纳部分,在这里综合一下:

如果要搭建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 ..\conf\openssl.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 ..\conf\openssl.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 ..\conf\openssl.cnf

4)复制文件:

将server.crt,server.key,ca.key复制到apache的conf文件夹下。原因:待查。

4、修改配置文件:

1)修改httpd.conf

a、去掉如下语句的注释:

 

[html] view plain copy

  1. LoadModule proxy_module modules/mod_proxy.so  
  2. LoadModule proxy_connect_module modules/mod_proxy_connect.so  
  3. LoadModule proxy_http_module modules/mod_proxy_http.so  
  4. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so  
  5. LoadModule rewrite_module modules/mod_rewrite.so  
  6. LoadModule ssl_module modules/mod_ssl.so  

 

b、添加如下语句:

 

[html] view plain copy

  1. <VirtualHost *:80>  
  2.     <IfModule mod_proxy.c>  
  3.         ProxyRequests Off  
  4.         SSLProxyEngine on  
  5.     </IfModule>  
  6.     ServerName 127.0.0.1:80  
  7.     ServerAdmin webmaster@localhost  
  8.     ProxyPass / https://login.taobao.com/  
  9.     ProxyPassReverse / https://login.taobao.com/  
  10. </VirtualHost>  

c、确认使用ssl.conf

 

即有如下语句:

 

[html] view plain copy

  1. <IfModule mod_ssl.c>  
  2.     Include conf/ssl.conf  
  3. </IfModule>  

2)修改ssl.conf

 

a、确保证书们的位置路径正确,我只用了下面三个:

 

[html] view plain copy

  1. SSLCertificateFile conf/server.crt  
  2. SSLCertificateKeyFile conf/server.key  
  3. SSLCertificateChainFile conf/ca.crt  

 

b、注意ServerName的定义:

 

[html] view plain copy

  1. <VirtualHost *:443>  
  2. ServerName 127.0.0.1:443  

 

5、重启Apache,访问测试,访问http://127.0.0.1/时,浏览器会显示https://login.taobao.com/的页面。