Apache+NC+SSL的配置文档
NC技术支持部 李伟雄
2005.1.18
随着计算机网络的迅速发展, 安全问题日益突出, 如何保障在网络上安全地传输数据,成为一大技术热点。目前一般采用SSL协议在Internet上进行数据的安全传输。SSL现在已经成为事实上的国际标准。随着NC的推广,如何保障NC数据在网上传输的安全性,成为大家关心的问题。NC中间件采用的是Tomcat, 我们可以通过Apache+NC+SSL的方式来保障NC数据在网络上传输的安全性。
本文档主要讲述如何配置Apache+NC+SSL, 关于SSL协议的细节请参考其它文档。本文档同样适用于只配置Apache+NC的情况。
下面的配置步骤在以下环境中测试通过:
Apache_1.3.29-Mod_SSL_2.8.16-Openssl_0.9.7c-Win32.zip
Openssl-0.9.7c-Win32.zip
NC230/NC30
Win2000 server
一、Apache+NC在同一台机器上
(一).安装Apache Web Server(在NT下,可以做为一个服务启动):
(二).配置NC:
1. 在"%NCHome%\node\3000\conf的Server.xml
启用:
<!-- Apache AJP12 support. -->
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler" value="org.apache.tomcat.service.connector.Ajp13ConnectionHandler"/>
<Parameter name="port" value="8007"/>
</Connector>
删除(或注释):
<!-- Normal HTTP -->
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler"
value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter name="port"
value="80"/>
</Connector>
注意 : 一定为 <Parameter name="port" value="8007"/>, 如果value=8107或其它则改成8007。
(三) .启动NC,获得自动生成的文件"%NCHome%\node\3000\conf\mod_jk.conf-auto",;并将其拷贝到"%ApacheHome%/conf"目录下;
(四) .修改"%NCHome%\node\3000\conf"下的配置文件:workers.properties:
设置变量:
workers.tomcat_home=%NCHome%
workers.java_home=%JavaHome%
(五) .将"mod_jk.dll"(下载并解压Tomcat,在其"modules"目录下)拷贝到"%ApacheHome%/modules"目录下;
(六) .修改"%ApacheHome%/conf/"下Apache Web Server的配置文件——httpd.conf;
1 .修改 DocumentRoot "%NCHome%/webapps/nc_web"
2 .修改DirectoryIndex。查找下面的文字,将DirectoryIndex index.html
修改成 DirectoryIndex index.jsp index.html。
即 :
<IfModule mod_dir.c>
DirectoryIndex index.jsp index.html
</IfModule>
3 . 修改 ServerRoot=%ApacheHome%
4. 在<IfModule mod_alias.c> 下加入下列语句:
Alias /nc/ "%NCHOME%/webapps/nc_web"
<Directory "%NCHOME%/webapps/nc_web">
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
5 . 将 <Directory "c:/apache/htdocs"> 改为 <Directory "%NCHome%/webapps/nc_web">
6 .在最后加入语句:
Include "%ApacheHome%/conf/mod_jk.conf-auto"
7 . 将 apache 的路径改为本机的实际路径 . 例如 :c:/apache/ 改为 d:/apache/
8 .重启 Apache Web Server,启动NC.
注意:
%ApacheHome%:请用Apache Web Server的实际安装目录代替;
%NCHome%:请用NC的安装目录代替,如:C:\ufsoft\newcentury
%JavaHome%:请用JDK的安装目录代替;如:C:\ufsoft\newcentury\ufjdk
二. 如果Apache与NC在不同的机器上
则在上面的基础上增加以下几步:
(一).将"%NCHome%\node\3000\conf"下的配置文件:workers.properties拷贝到"%ApacheHome%/conf"目录下;
(二).修改"%ApacheHome%/conf/workers.properties" 中的:
worker.ajp12.port=8007
worker.ajp12.host=localhost (修改为NC的IP地址)
worker.ajp12.type=ajp12
worker.ajp13.port=8009
worker.ajp13.host=localhost (修改为NC的IP地址)
worker.ajp13.type=ajp13
(三). 修改%ApacheHome%/conf/mod_jk.conf-auto文件中的 JkWorkersFile 与 JkLogFile项,在这里修改为:
JkWorkersFile "%ApacheHome%/conf/workers.properties"
JkLogFile "%ApacheHome%/logs/mod_jk.log"
然后在JkMount /*.jsp ajp12之前增加一行,内容如下:
JkMount /* ajp12
三. Apache+NC+SSL (apache与NC在不同的机器上)
则在上面一、二步基础上再增加以下几步:
(一).生成安全证书:
1. 解压Openssl-0.9.7c-Win32.zip
2.在命令行窗口中进入解压的目录,分别执行以下命令 :
openssl req -config openssl.cnf -new -out my-server.csr
(注意: 当提示“Common Name (eg, your websites domain name)”,给出精确的Apache服务器域名或IP地址,如:www.ufsoft.com或192.168.9.99)
openssl rsa -in privkey.pem -out my-server.key
openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365
openssl x509 -in my-server.cert -out my-server.der.crt -outform DER4
将生成的文件 my-server.der.crt , my-server.cert , my-server.key , privkey.pem , my-server.csr 拷贝到%ApacheHome%\conf\ssl\ 的文件夹下,如果没有这个文件夹,就建立一个.
3. 进入解压的目录,将ssleay32.dll 和 libeay32.dll 到 apache服务器的WINNT\System32目录下.
(二).修改"%ApacheHome/conf/httpd.conf"
1. 将 port 80 改为 port 443
2. 在最后加入语句:
LoadModule ssl_module modules/mod_ssl.so
SSLMutex sem
SSLRandomSeed startup builtin
SSLSessionCache none
SSLLog logs/SSL.log
SSLLogLevel info
<VirtualHost apache服务器的域名或IP:443>
SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
</VirtualHost>
最后分别启动Apache和NC,然后打开浏览器,在地址栏输入: https://apache服务器IP或域名,即可.
注意:
1. 目前Apache+NC+SSL只支持startdirectserver启动方式。
2. 如果NC为230版本,则在配置Apache+NC+SSL方式时需打支持SSL的NC补丁,配置Apache+NC则不需要。如果NC为3。0版则在配置Apache+NC 或Apache+NC+SSL方式时都不需要打补丁。
3. 无论Apache与NC是否在同一台机器上,都可以采用在不同机器上的方式进行设置。
评论