当前位置: 首页 > news >正文

apache http server 开启ssl 与tomcat交互

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

最近做的项目要求使用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。找打如下行代码,去掉其前边的注释井号(#) 

Java代码 

 收藏代码

  1. LoadModule ssl_module modules/mod_ssl.so  
  2. Include conf/extra/httpd-ssl.conf  
  3. #以上2行是开启ssl  
  4.   
  5. LoadModule proxy_module modules/mod_proxy.so  
  6. LoadModule proxy_http_module modules/mod_proxy_http.so  
  7. #以上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>中插入如下代码 

Java代码 

 收藏代码

  1. SSLProxyEngine on   
  2. ProxyRequests off   
  3. #sys  
  4. ProxyPass /sys/ http://127.0.0.1:8882/sys/  
  5. ProxyPassReverse /sys/ http://127.0.0.1:8882/sys/  
  6. #pfs  
  7. ProxyPass /pfs/ http://127.0.0.1:8885/pfs/  
  8. ProxyPassReverse /pfs/ http://127.0.0.1:8885/pfs/  
  9. #注意我开启了2个tomcat应用,对应2个端口。8882端口是tomcat的http端口。  


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

Java代码 

 收藏代码

  1. openssl genrsa -out server.key 1024  


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

Java代码 

 收藏代码

  1. 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 

转载于:https://my.oschina.net/kmnztech/blog/813020

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 国际直拨电话号码格式
  • Spring-boot-admin功能说明
  • Linux 进程与线程六
  • UML课程复习重点
  • 前端面试通关指南
  • 网络广告计费方式常用术语
  • sails 跨域请求处理 -- config.cors
  • memcache命令
  • openlayers 3监听地图分辨率变化事件
  • Jython开发环境搭建
  • 【树莓派】树莓派网络对时间,时间调整
  • CodeDom系列四--Code生成
  • X 1 BT5kali
  • TCP协议中的三次握手和四次挥手(图解)【转】
  • 转载:年轻人,你着什么急?
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • chrome扩展demo1-小时钟
  • gf框架之分页模块(五) - 自定义分页
  • Laravel Telescope:优雅的应用调试工具
  • Lsb图片隐写
  • SQL 难点解决:记录的引用
  • 关于Java中分层中遇到的一些问题
  • ------- 计算机网络基础
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端性能优化——回流与重绘
  • 如何设计一个比特币钱包服务
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 协程
  • 一天一个设计模式之JS实现——适配器模式
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #知识分享#笔记#学习方法
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (1)(1.11) SiK Radio v2(一)
  • (11)MATLAB PCA+SVM 人脸识别
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (C)一些题4
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (java)关于Thread的挂起和恢复
  • (javascript)再说document.body.scrollTop的使用问题
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (八)Spring源码解析:Spring MVC
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (全注解开发)学习Spring-MVC的第三天
  • (一)RocketMQ初步认识
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net 4.0发布后不能正常显示图片问题
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • .net访问oracle数据库性能问题
  • .NET命令行(CLI)常用命令
  • .NET上SQLite的连接