服务器证书安装配置指南(Weblogic) html
以前在网上找了好多资料,按照步奏执行,可是最后都不行,都缺了一点,最后终于整合起来了,从本身制做CA证书到weblogic配置和客户端IE设置,所有OK java
1、环境准备 linux
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 web
2、准备openssl apache
先决条件:从openssl官网下载www.openssl.org windows
安装openssl[windows和linux安装不一样] 浏览器
若是没有配置环境变量,则须要进入openssl的bin目录下执行命令,如:C:/OpenSSL/bin,这个不对了,我下载的是最新的openssl-0.9.8zc,没有bin,目录,测试了下,能够在win7下直接用C:\openssl-0.9.8zc这个目录执行, 服务器
若只配置了环境变量,则在任意位置均可以执行 oracle
在执行命令前,新建两个目录ca和server,这个要注意哦,在openssl-0.9.8zc这个里面建立 dom
1、 使用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、打开受信任的根证书颁发机构-》点击“导入”按钮
浏览器去掉地址不匹配警告
所有修改完毕以后,重启浏览器