weblogic制作证书实现HTTPS 完整版
服务器证书安装配置指南(Weblogic)
之前在网上找了好多资料,按照步奏执行,但是最后都不行,都缺了一点,最后终于整合起来了,从自己制作CA证书到weblogic配置和客户端IE设置,全部OK
一、环境准备
1. 安装JDK(可选)
Weblogic安装后自带JDK安装。如果您直接在服务器上生成证书请求,请进入Weblogic安装目录下JDK所在路径的bin目录,运行keytool命令。
如果您需要在其他环境下生成证书请求文件,则您可以选择安装JDK,并稍后上传生成的密钥库文件keystore.jks到服务器上进行配置。
Java SE Development Kit (JDK) 下载。下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、准备openssl
先决条件:从openssl官网下载www.openssl.org
安装openssl[windows和linux安装不同]
如果没有配置环境变量,则需要进入openssl的bin目录下执行命令,如:C:/OpenSSL/bin,这个不对了,我下载的是最新的openssl-0.9.8zc,没有bin,目录,测试了下,可以在win7下直接用C:\openssl-0.9.8zc这个目录执行,
若只配置了环境变量,则在任意位置都可以执行
在执行命令前,新建两个目录ca和server,这个要注意哦,在openssl-0.9.8zc这个里面创建
一、 使用openssl制作CA证书和服务器证书
目前不使用第三方权威机构的CA来认证,因为需要收费,所以我们自己使用openssl来制作CA证书和服务器证书,自己充当CA的角色。
一:生成CA证书
1. 创建私钥 :
openssl genrsa -out ca/ca-key.pem 1024
2.创建证书请求 :
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
这句执行出错啦,结果出现了这个错误:Unable to load config info from /usr/local/ssl/openssl.cnf
百度了一下,按照后面蓝色这一段执行就OK
原来是直接使用了别人生成好的密钥,可惜他是在Unix上用的,不适合Win32!没有办法,从新开始整openSSO,但是呢,在使用openSSO的时候,出现了 [Unable to load config info from /usr/local/ssl/openssl.cnf ] 异常.然原来这是Unix的默认设置,没有办法,只好建文件[c:/usr/local/ssl],从网上下载openssl.conf,然后改为openssl.cnf,置于c:/usr/local/ssl目录下,好了,终于搞定密钥了,Apache也可以启动了,庆祝一下。
访问https://localhost/login,是白屏,是没有启动Apache的SSL,在CMD下运行apache -D SSL,OK,一切都搞定了。
一些优化的方法,就是在ssl.conf文件中,注释掉<IfDefine SSL>,就可以直接启动SSL了。
在配置中,还有一些问题,比如,[ Invalid SSLMutex argument file:logs/dd (Valid SSLMutex mechanisms are: `none‘,
default‘ )],这是Apache的一个Bug,只能使用default或者none.
上面的参数都是随意写的,但是我的多了需要请求的密码,必须是4位,我设置为test
3.自签署证书 :
1>3650 是设置10年的证书有效期,基本够用了
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
2>生成ca-cert.cer证书,用于客户端导入
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.cer -signkey ca/ca-key.pem -days 3650
4.将证书导出成浏览器支持的.p12格式 : (不需要可以省略)
openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12
密码继续设置为test
制作服务器证书
通过keytool工具产生秘钥、及证书请求文件,然后使用openssl上一步产生的ca根证书对证书请求进行签证,
下面生成的文件都生成到C:\Users\xia\AppData\Local\VirtualStore\Program Files (x86)\Java\jdk1.6.0\bin目录下了
Unix下面生成的文件都生成到:/openssl-0.9.8zc/server/目录下边
下面这两步使用keytool工具
生成密钥对
keytool -genkey -alias example -validity 3650 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore example.jks
生成证书请求
keytool -certreq -alias example -sigalg MD5withRSA -file example.csr -keypass 123456 -keystore example.jks -storepass 123456
后面的命令使用openssl
根据证书请求,生成服务器证书
openssl x509 -req -in server/example.csr -out server/example.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -days 3650 -set_serial 1
向Keystore中导入证书
切换回keytool工具
导入CA证书
keytool -import -v -trustcacerts -keypass 123456 -storepass 123456 -alias root -file C:\openssl-0.9.8zc\ca\ca-cert.pem -keystore C:\openssl-0.9.8zc\example.jks
AIX中命令如下:
keytool -import -v -trustcacerts -keypass 123456 -storepass 123456 -alias root -file /home/eteller/openssl/openssl-0.9.8zc/ca/ca-cert.pem -keystore /home/eteller/openssl/openssl-0.9.8zc/server/example.jks
导入服务器证书
keytool -import -v -trustcacerts -storepass 123456 -alias example -file C:\openssl-0.9.8zc\example.pem -keystore C:\openssl-0.9.8zc\example.jks
AIX中命令如下:
keytool -import -v -trustcacerts -storepass 123456 -alias example -file /home/eteller/openssl/openssl-0.9.8zc/server/example.pem -keystore /home/eteller/openssl/openssl-0.9.8zc/server/example.jks
查看Keystore文件内容
keytool -list -keystore C:\openssl-0.9.8zc\example.jks -storepass 123456
AIX中命令如下:
keytool -list -keystore /home/eteller/openssl/openssl-0.9.8zc/server/example.jks -storepass 123456
看到有2个证书,一个是根证书,一个是服务器证书,其中根证书是公钥,服务器证书是私钥
秘钥库文件:example.jks在ssl的配置中使用到。先把这个文件复制到如下位置:
C:\bea\user_projects\domains\base_domain即域的根目录下。
AIX中命令如下:
cp example.jks /home/eteller/base_domain/
Weblogic 配置
打开ssl服务
设置keystore
密码4个都是 之前申请生成example.jks的123456
设置SSL
这里面Private Key Alias:是我们服务器的别名,也就是之前设置的example,密码还是123456
需要把这个服务器名验证设置为NONE
屏蔽http访问
设置完成之后,重启Weblogic,可以通过https://localhost:7002/ETellerbb/方式进行访问,但是原有http://localhost:7001/ETellerbb/还是可以访问,需要在web.xml下增加配置
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
这样访问http时会自动跳转到https
客户端操作
导入CA证书
1、打开Internet选项-》选择内容-》点击证书
2、打开受信任的根证书颁发机构-》点击“导入”按钮
浏览器去掉地址不匹配警告
全部修改完毕之后,重启浏览器
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。