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,是白屏,是没有启动ApacheSSL,在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.jks123456

 

 

 

设置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、打开受信任的根证书颁发机构-》点击“导入”按钮

 

 

 

 

 

 

 

 

 

 

 

浏览器去掉地址不匹配警告

 

 

 

全部修改完毕之后,重启浏览器

 

猜你喜欢

转载自lishuaishuai.iteye.com/blog/2393864