|
作者:太阳系水瓶 提交日期:2006-10-13 17:07:00 |
|
昨天张欣交给我一个任务:通过设置一台apache服务器完成对
https://10.6.177.66内容的访问,后来经过学习才了解,我们其实就是需要在自己的apache服务器中,创建一个https://10.6.177.66的反向代理。首先介绍一下何为反向代理:
一.反向代理的概念
反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。
Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理(如上图所示),只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。
二.win+apache实现ssl
首先,到http://hunter.campbus.com/去下载和自己的apache版本相同的的Apache_xxx-xxxOpenssl_xxx-Win32.zip。
我用的是Apache_2.0.59,
安装程序地址: http://apache.justdn.org/httpd/binaries/win32/apache_2.0.59-win32-x86-no_ssl.msi
Apache_2.0.59-Openssl_0.9.8c-Win32.zip地址:
http://209.61.202.80/apache/Apache_2.0.59-Openssl_0.9.8c-Win32.zip)。
解压缩后找到这5个文件mod_ssl.so(modules目录),ssl.conf,ssl.default.conf(conf目录, 其中default.conf作为备份),libeay32.dll, ssleay32.dll(这2个都在bin目录)。把它们全都复制到你自己的apahce下的对应目录 。
###############################################################################
接下来,更改设置文件
对于httpd.conf和ssl.conf,如果你的服务器没有域名,那么servername就填ip好了。
比如:ServerName 172.18.42.123:80(httpd.conf)
ServerName 172.18.42.123:443(ssl.conf)
打开httpd.conf:
找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的‘#‘,这样就在启动时加载了ssl模块。
打开ssl.conf:
找到#<ifdefine ssl=""></ifdefine>;和#;,把前面的’#‘号都去掉,否则启动apache时还要加参数,麻烦。
如下设置:
SSLMutex default
SSLCertificateFile conf/server.crt(服务器证书的位置)
SSLCertificateKeyFile conf/server.key (服务器私钥的位置)
SSLCACertificateFile conf/ca.crt (CA根证书的位置,进行客户端验证时需要)
上面的文件被放到了conf目录下。
DocumentRoot "xxxxx" (指向要ssl加密认证的文档目录,比如"f:/http")
SSLVerifyClient require (去掉前面的‘#’号,进行客户端验证时需要)
SSLVerifyDepth 1 (去掉前面的‘#’号,把10改为1,进行客户端验证时需要)
##############################################################################
现在,就要制作证书了
去openvpn.net下载并安装openvpn。
http://openvpn.net/release/openvpn-2.0.9-install.exe
这是一个虚拟个人网络制作工具,他能完美的在win(linux,BSD也行)下制作根、服务器、客户端证书。
安装完毕后,开始-程序-附件-命令提示符,进到openvpn的easy-rsa目录,比如:
c:\program files\openvpn\easy-rsa>
输入: init-config 回车
会产生几个文件,切换出来,打开vars.bat文件,修改其中的KEY_COUNTRY(国家2位字母), KEY_PROVINCE(省2位字母), KEY_CITY(城市), KEY_ORG(组织), KEY_EMAIL(电子邮箱)这几个参数,免的后面制证时
反复输入麻烦。保存退出,继续使用命令提示符。
依次输入以下两个命令,当然是分别回车喽:
vars
clean-all (这两个是准备工作)
####################################################################################
1. 建立CA根证书
输入build-ca 回车(这个就是建立CA根证书啦)
然后显示:
ai:/usr/share/openvpn/easy-rsa # ./build-ca
Generating a 1024 bit RSA private key
............++++++
...........++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blan k
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [KG]: 国家名2位字母,默认的参数就是我们刚才修改过的。
State or Province Name (full name) [NA]: 省、州名2位字母
Locality Name (eg, city) [BISHKEK]: 城市名
Organization Name (eg, company) [OpenVPN-TEST]: 组织名
Organizational Unit Name (eg, section) []: 组织里的单位名
Common Name (eg, your name or your server's hostname) []:这个是关键,应该输入颁发根证书单位的域名
,不过因为是根证书,所以怎么填都无所谓。只有服务器证书才需要认真填。
Email Address [me@myhost.mydomain]: 电子邮箱
好了,CA根证书制作完成!在keys目录下,它的名字就叫ca.crt,CA的私钥是ca.key
#######################################################################
2. 制作服务器证书:
在命令提示符下,输入
build-key-server server 回车
你会看到和上面很相似的东西,但要注意
这里的Common Name (eg, your name or your server's hostname) []: 这个才是真正的关键。这里应该输入服务器的域名比如www.xxx.com。
如果没有域名,就应该填ip,与httpd.conf和ssl.conf里的设置对应,
ServerName 172.18.42.123:80(httpd.conf)
ServerName 172.18.42.123:443(ssl.conf)
也就是说填:172.18.42.123
接下来看到 a challenge password []:填不填随便
an optional company name []: 填不填随便
sign the certificate? [y/n] 敲y回车。用CA根证书对服务器证书签字认证。
1 out 1 certificate requests certified,commit? [y/n] 敲y回车,确认。
好了,建好了在keys目录下的server.crt(证书)和server.key(私钥) #######################################################################
3. 制作客户端证书:
在命令提示符下,输入
build-key client1 回车
又是一通国家省市组织等等,comman name也是随便填的。
然后 :
a challenge password []:填不填随便
an optional company name []: 填不填随便
sign the certificate? [y/n] 敲y回车。用CA根证书对客户端证书签字认证。
1 out 1 certificate requests certified,commit? [y/n] 敲y回车,确认。
好了,建好了在keys目录下的client1.crt(客户端证书)和client1.key(私钥)
等等, .crt的客户端证书是不能使用的,必须把它转化为.pfx格式的文件!!
所以,还是在命令提示符下,输入
openssl 回车
看到openssl>;
再输入 :
pkcs12 -export –in keys/client1.crt -inkey keys/client1.key -out keys/client1.pfx 回车,
看到Enter export password:会要求你建立客户端证书的输出密码
verifying-Enter export password再确认一遍,好了!
######################################################################## 把keys目录下的ca.crt和server.crt,server.key都复制到apache的conf目录下,(ssl.conf需要) ca.key自己保留吧,找个合适的地方储存起来.
#########################################################################
客户端安装证书
打开internet explorer(IE),工具-internet选项-内容-证书,点选'个人' 再点击导入,把客户端证书client1.pfx导入到个人组里(别忘了扩展名是pfx)。这里还要输入刚才建立的输出密码才能导入呢。
接着,点选'受信任的根证书颁发机构',点击导入,把CA根证书ca.crt导入到受信任的根证书颁发机构里。
#########################################################################
好啦,重新启动apache,打开IE,
在地址栏里输入https://172.18.42.123或者域名,弹出个窗口要选择个人的数字证书。
点选,然后确定。
如果服务器证书的common name填写正确的话,你就可以直接进入网站了,看到右下角的小锁头(可靠的SSL128位)。
如果服务器证书的common name填写不正确,就会弹出个‘安全警报’框,告诉你3条:
1.安全证书由信任的站点颁发
(如果说是由不信任的站点颁发,那就是你的ca根证书ca.crt没有导入到ie的受信任的根证书颁发机构里)
2.安全证书的日期有效
(这个日期缺省是10年,可以在openvpn的easy-rsa目录下的openssl.cnf里调整修改,然后重新制作一整套证书(openssl.cnf看起来像拨号网络的快捷方式,要用记事本,写字板打开修改))
3.“安全证书上的名称无效,或者与站点名称不匹配”
这就是服务器证书的common name填写不正确所致,不过这也没关系,有人好像愿意这样。我是不想看到这个警告框,烦人。
即使有安全警报,你仍能进入网站,看到右下角的小锁头(可靠的SSL128位)
#################################
最后,成功啦!用吧。
三.设置反向代理
修改conf\httpd.conf文件
先启动两个模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
然后在文件最后加上
SSLProxyEngine on
ProxyRequests Off
ProxyPass / https://10.6.177.66
ProxyPassReverse / https://10.6.177.66
ok了,重新启动apache,输入https://172.18.42.123 ,什么效果,自己试试就知道了!
分享到:
相关推荐
以上就是Apache反向代理WebLogic的基本步骤和关键知识点,通过这种方式,你可以构建一个高效、安全的Web应用架构。在实际部署中,还需要考虑更多的细节,如SSL证书配置、安全策略、性能调优等。
### Apache2.4+Tomcat8 反向代理集群配置详解 #### 一、概述 在Windows环境下配置Apache2.4与Tomcat8的反向代理集群,涉及到多个步骤和技术要点,包括Apache与Tomcat的基本安装配置、负载均衡以及Session共享机制...
【7ghostPHP反向代理脚本】是一种技术解决方案,它允许通过PHP来实现反向代理功能。在Web服务器架构中,反向代理扮演着至关重要的角色,它隐藏了后端服务器的真实身份,增强了系统的安全性和可扩展性。7ghostPHP反向...
`proxy.conf`包含反向代理的具体设置,例如: ```nginx location / { proxy_pass http://localhost:8080; # 指向tomcat的默认端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; ...
HAPROXY和Nginx都是流行的反向代理和负载均衡解决方案,它们各有优势。 - **Nginx**: - 更侧重于HTTP/HTTPS协议的支持。 - 提供了更丰富的HTTP功能,如静态文件服务、缓存、重写等。 - 内存占用相对较低,适用...
首先,确保Apache已启用`mod_proxy`模块,然后在虚拟主机配置中添加反向代理规则: ```apacheconf *:80> ServerName gateway.com ProxyPass /java http://localhost:8080/ ProxyPassReverse /java ...
接下来,"Apache反向代理"章节将详细讲解如何使用Apache HTTP Server作为反向代理服务器。Apache是广泛应用的开源Web服务器,它可以配置为反向代理以接收来自客户端的请求,并将这些请求转发给适当的后端服务器。这...
##### 3.4 编译代理/反向代理模块 - 进入Apache源码目录: ```bash # cd /usr/src/httpd-2.2.15/modules/proxy ``` - 编译代理模块: ```bash # /opt/apache/bin/apxs -i -a -c mod_proxy.c proxy_util.c # /...
总结来说,Nginx 反向代理提供了高效、灵活的负载均衡解决方案,能够根据需求调整服务器权重,设置故障检测机制,从而提高整个系统的可用性和可靠性。在这个具体的配置案例中,我们看到了如何通过 Nginx 实现这一...
Apache和Tomcat的组合是常见的Web服务架构,Apache作为前端反向代理服务器,负责接收来自客户端的请求,并根据预设策略将这些请求转发到后端的Tomcat实例上。 首先,我们需要理解负载均衡的基本概念。负载均衡器...
**一、Apache反向代理** 反向代理是Apache实现负载均衡的核心机制。当客户端请求到达Apache服务器时,服务器会根据预设的策略将请求转发到后端的服务器集群,而不是直接服务请求。这样可以有效地隐藏后端服务器的...
目录: 负载均衡技术介绍 什么是负载均衡? 负载均衡算法原理 负载均衡应用模式 高可用的系统设计 什么是系统高可用性? 高可用的模式 ... Apache+Tomcat 高可用WEB集群 Keepalived +LVS 高可用应用集群
这个方案的主要目标是利用Apache作为前端的反向代理服务器,将请求分发到后端的多个WebSphere实例,以实现更好的性能和容错能力。 在部署过程中,首先需要注意的是"重要提示"部分,这通常会包含一些关键的注意事项...
Nginx 作为一种轻量级、高性能的 HTTP 和反向代理服务器,逐渐成为 Apache 的一种有效替代方案。本文将详细介绍如何使用 Nginx 替代 Apache,并与 JBoss 结合使用,以提高系统的整体性能。 #### 现有部署情况 当前...
【Nginx的反向代理与负载均衡】 在IT领域,Nginx作为一个高性能的HTTP和反向代理服务器,常用于构建高效的Web服务系统。本文将深入探讨Nginx的反向代理和负载均衡功能,以及它们在集群环境中的应用。 1.1 集群是...
带有TLS的容器中的Apache Guacamole 此Docker Compose设置非常容易(仅3个cli命令)在通过Let's Encrypt保护的NGINX反向代理TLS后面运行 。 尽管此回购协议已有3年历史,但由于使用了最新的官方图片,因此至今仍然...
"iis7反向代理tomcat工具包" 是一套帮助用户设置IIS7作为反向代理,转发请求到Tomcat服务器的解决方案。反向代理的主要作用是隐藏后端服务器的真实身份,提高系统的可伸缩性和安全性,并能有效利用负载均衡。 在这...