Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)


准备:

1. UsbWebServer架设网站构造器(自带Apache服务)

2. Apache2.4 (配置反向代理到UsbWebServerApache

3. SSL证书 (保证https安全访问)

免费注册网址:https://certmall.trustauth.cn/Home/FreeSSL/index.html>

4. CSR生成工具(上面网址有该工具)

5. ftp工具(传资源到远程虚拟机)

6.RDO管理器(方便部署到服务机)

 

步骤:

1. 运用RDO管理器,打开所需部署的服务机,部署UsbWebServer(端口自定,root dir 自定义,为所映射的资源空间),保证能用http正常访问目标资源;(如下图)

 Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第1张图片

 

2. 下载Apache2.2,配置成能https访问,

     (参考:https://blog.csdn.net/tdcqfyl/article/details/79023431)

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

Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第2张图片

2.2 生成服务端的key文件

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

Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第3张图片

完成后,会在bin目录下生成server.key文件

2.3 生成签署申请

执行命令:openssl req -new -out server.csr -key server.key

Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第4张图片

完成后,会在bin目录下生成server.csr文件,其中 Common Name [] 需要与配置文件中的ServerName一致,否则apache启动时将会报错。

2.4 生成CA的key文件

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

Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第5张图片

完成后,会在目录bin下生成ca.key文件

2.5 生成CA自签署证书

执行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt

Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第6张图片

完成后,会在目录bin下生成ca.crt文件,此处填写的信息与2.3步中类似。

2.6 生成CA的服务器签署证书

执行命令:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第7张图片

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

Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第8张图片

根据提示,手动创建相关目录:

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

ServerName localhost

提示:此处如果保持https默认的443端口,则访问的时候,无需再加端口号。

3.2 修改相关证书路径

apache安装目录的conf目录下,新建一个key目录,名称随意,然后将bin目录中的相关证书复制到key目录中。key目录最终的文件结构如下:

Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第9张图片

接着修改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配置成功了。

3. 通过反向代理,在..\Apache24\conf\extra\httpd-vhosts.conf中添加

 

   # ServerAdmin [email protected]

   # ServerName hipchat.test.com

    #

    #    Order deny,allow

     #   Allow from all

    #

    SSLEngine On

    SSLProxyEngine On

    SSLProxyVerify none

    SSLProxyCheckPeerCN off

    SSLProxyCheckPeerName off

    SSLCertificateFile "D:/tools/Apache24/conf/key/bigworld.mydealscode.com.crt"

    SSLCertificateKeyFile "D:/tools/Apache24/conf/key/bigworld.mydealscode.com.key"

    SSLCertificateChainFile "D:/tools/Apache24/conf/key/issuer.crt"

    ProxyRequests Off

    ProxyPreserveHost On

    ProxyPass / http://127.0.0.1:8080/

    ProxyPassReverse / http://127.0.0.1:8080/

 

   4.cmd到终端,进入到..\Apache2.2\bin目录,执行httpd -k install(有错误的话,去调试)来完成安装Apache2.2,点击电脑的开始,查找‘服务’或者‘Service’,开启Apache2.2。

 

   5. 获取子域名

域名管理:

https://dcc.godaddy.com/manage/mydealscode.com/dns#divDnsManagement       

 Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第10张图片

   6. 获取证书并替换生成的自签署证书

         免费注册网址:https://certmall.trustauth.cn/Home/FreeSSL/index.html>

1.获取证书文件

在您完成申请数安时代GDCA服务器证书的流程后,登录系统将会下载一个压缩文件,使用里面的ApacheServer.zip文件;


解压之后获得证书如下图:


2.获取私钥证书文件

请找到之前提交csr时生成的.key私钥文件,该文件为证书的私钥,后面配置要用到;

二、安装服务器证书

1.修改httpd.conf文件

打开apache安装目录下conf目录中的httpd.conf文件,路径如:/usr/local/apache/conf/httpd.conf,找到以下两项去掉前面的#注释,保存并退出。(如果找不到请确认是否编译过 OpenSSL 插件)

LoadModule ssl_module modules/mod_ssl.so

 

Include conf/extra/httpd-ssl.conf

2.修改主机域名

打开Apache2.x/conf/extra/目录下的httpd-ssl.conf文件,修改如下语句:

ServerName www.trushtauth.cn:443 #您的网站域名

3.添加SSL协议支持语句,关闭不安全的协议和加密套件

SSLProtocol all -SSLv2 -SSLv3

4.修改加密套件如下:

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE

5.添加证书配置语句:

找到如下三个选项SSLCertificateFile、SSLCertificateKeyFile和SSLCertificateChainFile这三个配置项,将testweb.95105813.cn.crt和tetweb.95105813.cn.key 及中级证书issuer.crt文件上传到指定目录(这里是/usr/local/apache/conf/sslcert,windows路径自己指定)

       6.完整的配置文件如下

ServerName    www.domain.com:443          #网站域名

DocumentRoot  "/usr/local/apache/www"         #网站主目录和80端口配置保持一致

SSLEngine onSSLProtocol  all -SSLv2 -SSLv3

SSLCipherSuite     ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE 

 SSLCertificateFile    "/usr/local/apache/conf/sslcert/testweb.95105813.cn.crt"  #证书公钥

SSLCertificateKeyFile   "/usr/local/apache/conf/sslcert/testweb.95105813.cn.key"  #证书私钥

SSLCertificateChainFile  "/usr/local/apache/conf/sslcert/issuer.crt"  #中级证书

 

7.重启Apache服务器,完成。(都能访问目标资源)

 Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第11张图片Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下)_第12张图片

 

 

 

 

 

 

你可能感兴趣的:(Apache服务器通过代理实现http和https双协议安全访问目标资源(windows环境下))