最近做的项目要求使用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
分享到:
相关推荐
用户需要将mod_jk模块加载到Apache配置中,并配置相应的worker.properties和httpd.conf文件,以使Apache知道如何与Tomcat交互。 总的来说,这些文件和组件构成了一个基本的Java Web服务环境,用户可以通过它们部署...
JK模块通过AJP(Apache JServ Protocol)协议与Tomcat交互,将HTTP请求转发到后端的Tomcat实例上。这种分发机制可以根据不同的策略,如轮询、最少连接数或权重分配,将请求均匀或智能地分发到各个Tomcat服务器,从而...
Apache Tomcat 6.0.10 是一个广泛使用的开源软件,它是一个符合Java Servlet和JavaServer Pages(JSP)规范的应用服务器,主要用于部署和运行Java Web应用程序。这个版本是Tomcat服务器的一个早期版本,发布于2007年...
5. **连接器(Connector)配置**:在Apache的httpd.conf或独立的配置文件中,需要定义连接器来指定如何与Tomcat交互。例如,使用`ProxyPass`和`ProxyPassReverse`指令来定义路径映射。 6. **Session粘滞(Session ...
这里需要注意的是,Apache 2.2 版本之前,可以通过 mod_jk 或 mod_proxy_ajp 与 Tomcat 交互,但是由于 mod_proxy 已经足够强大且易于管理,所以通常建议使用 mod_proxy 代替 mod_jk,以减少复杂性。 为了编译和...
2. **SSL加速**:APR库提供了本机SSL支持,这意味着Tomcat可以直接与操作系统的SSL/TLS库交互,减少Java层的加密运算负担,提高SSL连接的速度和效率。 3. **更好的系统整合**:使用APR,Tomcat能够更好地与其他基于...
Apache Tomcat 7.0.94 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是Tomcat服务器的一个稳定分支,为开发者和企业提供了一个运行Java Web...
11. **第11章:Tomcat与Apache HTTP服务器** - 讨论了Tomcat与Apache的集成方式,实现更强大的Web服务。 12. **第12章:Tomcat与IIS** - 探索了Tomcat与Microsoft IIS的集成方案,适用于Windows环境。 13. **第...
在8.0.x系列中,Tomcat引入了许多性能改进和新特性,例如支持HTTP/2协议、更好的SSL配置工具、更强大的连接器选项等。此外,它还修复了多个安全漏洞和一般性的bug,确保了服务的稳定性和安全性。 在安装Apache ...
在Android开发中,有时我们需要构建一个前后端分离的系统,其中Android客户端作为前端,而Servlet作为后端处理逻辑,服务器通常选择Apache Tomcat。本文将详细介绍如何实现Android与Tomcat服务器之间的交互,以及在...
mod_jk是Apache的Jakarta项目中的一个模块,专门用于与Tomcat交互。它负责监控Tomcat实例的状态,根据配置的策略将请求路由到合适的Tomcat服务器。配置mod_jk需要设置JKMount指令,指定哪些URL由哪个Tomcat实例处理...
Apache Tomcat是一个开源的软件应用服务器,主要用于运行Java Servlets和JavaServer Pages(JSP)。这个版本,"apache-tomcat-8.5.81.tar.gz",是Tomcat的8.5系列的一个发行版,以tar.gz格式打包,这是一种在Unix/...
5. **安装与配置**:对于Linux系统,解压"apache-tomcat-9.0.52-linux.zip"后,通常需要将Tomcat添加到系统路径,设置环境变量,以及配置`server.xml`等配置文件以满足特定需求。 6. **安全管理**:Tomcat的安全性...
Apache HTTP Server,简称 Apache,是一个开源的 Web 服务器,主要负责处理静态内容,如 HTML、CSS、JavaScript 文件等。它以其稳定性、速度和跨平台支持而著名。Apache 支持多种模块和插件,可以进行 SSL 加密、...
6. **连接器(Connectors)**: Tomcat支持多种协议的连接器,如HTTP/1.1、AJP(Apache JServ Protocol),用于与Web服务器如Apache HTTP Server进行通信。 7. **安全性**: Tomcat提供了基本的安全特性,如角色为...
### Tomcat与Apache整合知识点详解 #### 一、Apache与Tomcat的区别与联系 1. **功能定位**: - **Apache**:主要用于提供HTTP服务,支持多种类型的静态页面(如HTML、CSS、JS等),同时也支持通过插件扩展来处理...
Apache Tomcat是一款开源的Java Servlet容器,主要用于实现JavaServer Pages (JSP)、Servlet和Java EE的Web应用程序的部署。这个安装包"apache-tomcat-9.0.46"是Apache Tomcat的第9.0.46版本,是开发和运行Java Web...
- **Tomcat**:是由Apache软件基金会(ASF)下属的Jakarta项目开发的一个开源Web服务器和Servlet容器,支持Java Servlet、JavaServer Pages (JSP) 等技术。 #### 二、双向SSL认证介绍 双向SSL认证是一种更为严格的...
7. **连接器**:Tomcat 可以与其他服务器(如Apache HTTP Server)通过Apache的mod_jk或mod_proxy模块进行集成,实现负载均衡和更好的性能。 8. **日志系统**:Tomcat 提供详细的日志记录功能,帮助开发者调试和...
Apache Tomcat 6.0.30 是一个广泛使用的开源软件,它是一个符合Java Servlet和JavaServer Pages(JSP)规范的应用服务器,主要用于部署和运行Java Web应用程序。Tomcat是Apache软件基金会Jakarta项目的一部分,它以...