`

apache http server 开启ssl 与tomcat交互

阅读更多
最近做的项目要求使用https访问。在网上看了些资料,又看了看apache http server的文档(有中文版的,而且翻译的很好)。
先说下原理:浏览器 到 http server 使用https加密通信,http server 与tomcat通信使用http。所以tomcat不用开启https。把http server开启https就可以了。浏览器先请求http server,http server再将请求转发给tomcat。

环境:window XP;
软件:
1、httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi
2、apache-tomcat-6.0.18
配置过程:
1. 打开apache的配置文件conf/httpd.conf。找打如下行代码,去掉其前边的注释井号(#)
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
#以上2行是开启ssl

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#以上2行是为了https给转发tomcat

2.修改conf/extra/httpd-ssl.conf 文件里的两个字段:去掉其注释
SSLCertificateKeyFile "C:/Apache2/conf/server.key"
SSLCertificateFile "C:/Apache2/conf/server.crt"
暂时server.key和server.crt还没生成。
在<VirtualHost _default_:443>中插入如下代码
SSLProxyEngine on 
ProxyRequests off 
#sys
ProxyPass /sys/ http://127.0.0.1:8882/sys/
ProxyPassReverse /sys/ http://127.0.0.1:8882/sys/
#pfs
ProxyPass /pfs/ http://127.0.0.1:8885/pfs/
ProxyPassReverse /pfs/ http://127.0.0.1:8885/pfs/
#注意我开启了2个tomcat应用,对应2个端口。8882端口是tomcat的http端口。

3. 为网站服务器生成证书及私钥文件
1)生成服务器的私钥
进入apache http server安装目录的bin目录下,在命令行里执行:
openssl genrsa -out server.key 1024

在当前目录下生成了一个server.key
可用openssl genrsa –help查看帮助
2)生成自签署证书
    首先,在当前目录创建demoCA,里面创建以下文件,
文件:index.txt内容为空
文件:serial(无扩展名)内容为01
文件夹newcert
执行下边的命令,即可生成server.crt文件。
openssl req -new -x509 -days 365 -key server.key -out server.crt -config ..\conf\openssl.cnf

在当前目录下生成了一个server.csr;在这一命令执行的过程中,系统会要求您填写如下信息:
Country Name (2 letter code):使用国际标准组织(ISO)国码格式,填写2个字母的国家代号。中国请填写CN。
State or Province Name (full name): 省份,比如填写BeiJing
Locality Name (eg, city): 城市,比如填写BeiJing
Organization Name (eg, company): 组织单位,比如填写ABC
Organizational Unit Name (eg, section): 比如填写IT Dept
Common Name (eg, your websites domain name): 域名,如果你用localhost域名测试,就输入localhost;如果用ip测试就输入ip地址
注意:
行使 SSL 加密的网站地址。请注意这里并不是单指您的域名,而是直接使用 SSL 的网站名称 例如:pay.abc.com。一个网站这里定义是: abc.com 是一个网站; www.abc.com 是另外一个网站; pay.abc.com 又是另外一个网站。

Email Address: 邮件地址,可以不填
A challenge password: 可以不填
An optional company name:可以不填

然后将  server.crt,server.key复制到apache的conf文件夹下,重启apache
5.访问https://localhost
看到 it works代表配置成功。

不过由于,我们的CA不是由第三方机构颁发的,而是我们自己颁发的,所以,IE访问的时候,会显示,这个证书不是由Trused CA Authenticator颁发,告诉我们可能有安全隐患。如果要消除安全警告。在浏览器里导入证书即可。
https配完了,可以登录https://localhost/sys/login.jsp进行验证

备注:也可以一次生成证书
$ openssl req -new -x509 -nodes -out server1.crt -keyout server1.key -config ..\conf\openssl.cnf
1
0
分享到:
评论

相关推荐

    h_JAVA 2应用编程150例.rar

    很多很好的一些例子. 第1章 Java图形用户界面编程 1 ...实例147 整合Tomcat与Apache 532 实例148 整合JBuilder与WebLocig 533 实例149 安装、编译和执行一个MIDlet 535 实例150 构造Jsp/javabean开发和发布环境 537

    java应用软件程序设计

    525 实例143 安装配置Tomcat 526 实例144 安装配置Apache 528 实例145 安装配置WebLogic 529 实例146 整合Tomcat与IIS 531 实例147 整合Tomcat与Apache 532 实例148 整合JBuilder与WebLocig 533...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java开源包1

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    JAVA上百实例源码以及开源项目

    第一步:运行ServerData.java 启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动...

    java开源包11

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包2

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包3

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包6

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包5

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包10

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包4

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包8

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包7

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    java开源包9

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    超级有影响力霸气的Java面试题大全文档

    从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 12、...

    java开源包101

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

    Java资源包01

    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。 预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司...

Global site tag (gtag.js) - Google Analytics