2、观察weblogic方便开发部署提供的演示秘钥库
(秘钥库位置为:\weblogic11\wlserver_10.3\server\lib)
3、观察ssl的默认演示配置
那么在开发过程中,只需要在第一幅图上勾选“启用ssl监听端口”即可。
正式环境中,有哪些变化呢?主要就是更改上面2、3图中的配置,改为实际的秘钥库、以及根据实际的秘钥库来配置SSL。
网上可以搜到很多weblogic配置ssl相关资料,但是很多配置在实际环境中,都是跑不起来的。究其原因,有两点(1、需要去ca认证中心对 产生的证书请求进行签证;2、更有甚者,直接使用keytool来制作,压根没提签证这回事)。weblogic配置ssl,需要标识(私钥和数字证 书)、信任(可信证书颁发机构颁发的证书),所以光通过产生私钥直接配置肯定是不行的。
下面是具体的步骤:
1、下载openssl工具
这里使用openssl工具来制作这些秘钥、ca根证书等等。
openssl的windows安装文件放在网盘中,如果有需要随时下载。网盘地址为:
http://pan.baidu.com/share/link?shareid=421723979&uk=3222190371
我的安装路径为:D:\work\OpenSSL
安装之后,打开cmd进入到bin目录下,即D:\work\OpenSSL\bin。开始制作根证书、秘钥等。
2、制作CA根证书
- D:\work\OpenSSL\bin>openssl genrsa -out ca/ca-key.pem 1024
- Loading 'screen' into random state - done
- Generating RSA private key, 1024 bit long modulus
- ...............++++++
- ...++++++
- e is 65537 (0x10001)
- D:\work\OpenSSL\bin>openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem -config openssl.cnf
- You are about to be asked to enter information that will be incorporated
- into your certificate request.
- What you are about to enter is what is called a Distinguished Name or a DN.
- There are quite a few fields but you can leave some blank
- For some fields there will be a default value,
- If you enter '.', the field will be left blank.
- -----
- Country Name (2 letter code) [AU]:CN
- State or Province Name (full name) [Some-State]:AH
- Locality Name (eg, city) []:HF
- Organization Name (eg, company) [Internet Widgits Pty Ltd]:CAROOT
- Organizational Unit Name (eg, section) []:CA
- Common Name (eg, YOUR name) []:ahhx202
- Email Address []://这里直接回车,不配置
- Please enter the following 'extra' attributes
- to be sent with your certificate request
- A challenge password []://这里直接回车,不配置
- An optional company name []:这里直接回车,不配置
- D:\work\OpenSSL\bin>openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
- Loading 'screen' into random state - done
- Signature ok
- subject=/C=CN/ST=AH/L=HF/O=CAROOT/OU=CA/CN=ahhx202
- Getting Private key
3、通过keytool工具产生秘钥、及证书请求文件,然后使用openssl上一步产生的ca根证书对证书请求进行签证,并且
- D:\work\OpenSSL\bin>keytool -genkey -alias example -validity 365 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -keystore example.jks
- 您的名字与姓氏是什么?
- [Unknown]: ahhx202
- 您的组织单位名称是什么?
- [Unknown]: CAROOT
- 您的组织名称是什么?
- [Unknown]: CA
- 您所在的城市或区域名称是什么?
- [Unknown]: HF
- 您所在的省/市/自治区名称是什么?
- [Unknown]: AH
- 该单位的双字母国家/地区代码是什么?
- [Unknown]: CN
- CN=ahhx202, OU=CAROOT, O=CA, L=HF, ST=AH, C=CN是否正确?
- [否]: y
- D:\work\OpenSSL\bin>keytool -certreq -alias example -sigalg MD5withRSA -file example.csr -keypass 123456 -keystore example.jks -storepass 123456
- D:\work\OpenSSL\bin>openssl x509 -req -in example.csr -out example.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -days 365 -set_serial 1
- Loading 'screen' into random state - done
- Signature ok
- subject=/C=CN/ST=AH/L=HF/O=CA/OU=CAROOT/CN=ahhx202
- Getting CA Private Key
- D:\work\OpenSSL\bin>keytool -import -v -trustcacerts -keypass 123456 -storepass 123456 -alias root -file ca/ca-cert.pem -keystore example.jks
- 所有者: CN=ahhx202, OU=CA, O=CAROOT, L=HF, ST=AH, C=CN
- 发布者: CN=ahhx202, OU=CA, O=CAROOT, L=HF, ST=AH, C=CN
- 序列号: c1dedc7b5ba58f41
- 有效期开始日期: Wed Sep 11 21:37:29 CST 2013, 截止日期: Sat Sep 09 21:37:29 CST
- 2023
- 证书指纹:
- MD5: 22:26:1A:F1:A0:D8:A9:80:05:CA:12:A2:C0:EB:30:11
- SHA1: CB:C2:96:74:2A:03:9B:F8:39:F2:19:D8:5D:40:95:E7:25:27:64:73
- SHA256: 61:48:18:5E:49:27:13:38:69:B7:01:C1:ED:98:59:8A:B8:85:26:A8:D3:
- 5D:2E:EC:1E:DB:7E:59:71:AB:01:34
- 签名算法名称: MD5withRSA
- 版本: 1
- 是否信任此证书? [否]: Y
- 证书已添加到密钥库中
- [正在存储example.jks]
- D:\work\OpenSSL\bin>keytool -import -v -trustcacerts -storepass 123456 -alias example -file example.pem -keystore example.jks
- 证书回复已安装在密钥库中
- [正在存储example.jks]
- D:\work\OpenSSL\bin>keytool -import -alias example-ca -trustcacerts -file ca/ca-cert.pem -keystore exampletrust.jks
- 输入密钥库口令:123456
- 再次输入新口令:123456
- 所有者: CN=ahhx202, OU=CA, O=CAROOT, L=HF, ST=AH, C=CN
- 发布者: CN=ahhx202, OU=CA, O=CAROOT, L=HF, ST=AH, C=CN
- 序列号: c1dedc7b5ba58f41
- 有效期开始日期: Wed Sep 11 21:37:29 CST 2013, 截止日期: Sat Sep 09 21:37:29 CST
- 2023
- 证书指纹:
- MD5: 22:26:1A:F1:A0:D8:A9:80:05:CA:12:A2:C0:EB:30:11
- SHA1: CB:C2:96:74:2A:03:9B:F8:39:F2:19:D8:5D:40:95:E7:25:27:64:73
- SHA256: 61:48:18:5E:49:27:13:38:69:B7:01:C1:ED:98:59:8A:B8:85:26:A8:D3:
- 5D:2E:EC:1E:DB:7E:59:71:AB:01:34
- 签名算法名称: MD5withRSA
- 版本: 1
- 是否信任此证书? [否]: Y
- 证书已添加到密钥库中
这一步会产生两个秘钥库文件:example.jks、exampletrust.jks在ssl的配置中使用到。先把这两个文件复制到如下位置:
weblogic11\user_projects\domains\example\
即域的根目录下。
4、秘钥库配置:
启动domain并登录weblogic控制台,进入如图所示页面:
点击更改按钮,如下图所示:
默认是“演示标识和演示信任”,这里选择“定制标识和定制信任”并保存。
继续配置如下图所示的“标识、信任”,
由于之前制作秘钥的时候,密码统一为123456,这里可直接按照图中配置即可。密码部分全部输入123456,记得点击“保存”按钮。
注意:秘钥库类型为空,则表示使用默认的jks类型。
5、ssl配置:
选择ssl面板,如下图所示:
输入私有秘钥别名及私有秘钥密码(这里就是example.jks的相关信息,名称为example,密码为123456)
输入完成,记得保存。
至此,单向SSL配置完毕。大家可以把第二篇介绍的springside3的mini-web例子放在上面跑,使用 https://localhost:7002/mini-web的url访问,如果按照上面步骤,应该不会有问题。或者直接使用https: //localhost:7002/console来访问控制台进行测试。
双向SSL,在weblogic的配置方面,只需要修改下图的配置即可:
还是刚才的ssl配置界面,点击下面的高级链接:
找到“双向客户机证书行为”,选择“请求客户机证书并强制使用”表示如果使用https访问应用时,必须强制客户端浏览器提供证书。
修改完成,点击保存即可。
下面是springside3(mini-web)整合ssl时需要修改的配置:
修改文件:applicationContext-security.xml,如下:
- <!-- http安全配置 -->
- <s:http auto-config="true" use-expressions="true">
- <s:intercept-url pattern="/css/**" filters="none" />
- <s:intercept-url pattern="/img/**" filters="none" />
- <s:intercept-url pattern="/js/**" filters="none" />
- <s:intercept-url pattern="/account/user!save*" access="hasAnyRole('ROLE_修改用户')" />
- <s:intercept-url pattern="/account/user!delete*" access="hasAnyRole('ROLE_修改用户')" />
- <s:intercept-url pattern="/account/user*" access="hasAnyRole('ROLE_浏览用户')" />
- <s:intercept-url pattern="/account/role!save*" access="hasAnyRole('ROLE_修改角色')" />
- <s:intercept-url pattern="/account/role!delete*" access="hasAnyRole('ROLE_修改角色')" />
- <s:intercept-url pattern="/account/role*" access="hasAnyRole('ROLE_浏览角色')" />
- <s:x509 user-service-ref="userDetailsService" subject-principal-regex="CN=(.*?)$"/>
- <s:form-login login-page="/login.action" default-target-url="/" authentication-failure-url="/login.action?error=true" />
- <s:logout logout-success-url="/" />
- </s:http>
以上仅增加了x509的配置即可。注意后面的subject-principal-regex视具体情况而定。默认的是【CN=(.*?),】, 而我这里配置的是【CN=(.*?)$】这么改的原因是由于我这边的客户端证书主题标识CN放在最后了,如:【C=CN, ST=AH, L=HF, O=CAROOT, OU=CA, CN=admin】,所以subject-principal-regex就是用来如何匹配CN值的正则表达式。
现在weblogic已经支持双向ssl认证了,spring security也增加ssl认证的配置了,现在就缺少客户端证书了,不急,下面继续使用openssl来制作客户端证书
- 产生user账号对应的秘钥:
- D:\work\OpenSSL\bin>openssl genrsa -out user-key.pem 1024
- Loading 'screen' into random state - done
- Generating RSA private key, 1024 bit long modulus
- .....................................++++++
- ..++++++
- e is 65537 (0x10001)
- 根据user的秘钥产生证书请求csr文件:
- D:\work\OpenSSL\bin>openssl req -new -out user-req.csr -key user-key.pem
- You are about to be asked to enter information that will be incorporated
- into your certificate request.
- What you are about to enter is what is called a Distinguished Name or a DN.
- There are quite a few fields but you can leave some blank
- For some fields there will be a default value,
- If you enter '.', the field will be left blank.
- -----
- Country Name (2 letter code) [AU]:CN
- State or Province Name (full name) [Some-State]:AH
- Locality Name (eg, city) []:HF
- Organization Name (eg, company) [Internet Widgits Pty Ltd]:CAROOT
- Organizational Unit Name (eg, section) []:CA
- Common Name (eg, YOUR name) []:user//这里是指登录账号,与用户表的账号对应
- Email Address []:
- Please enter the following 'extra' attributes
- to be sent with your certificate request
- A challenge password []:
- An optional company name []:
- 使用openssl之前制作的ca根证书对证书请求文件进行签证:
- D:\work\OpenSSL\bin>openssl x509 -req -in user-req.csr -out user-cert.pem -signkey user-key.pem -CA ca/ca-cert.pem -CAkey ca/ca-key.pem -CAcreateserial -days 365
- Loading 'screen' into random state - done
- Signature ok
- subject=/C=CN/ST=AH/L=HF/O=CAROOT/OU=CA/CN=user
- Getting Private key
- Getting CA Private Key
- 将签证之后的证书文件user-cert.pem导出为p12格式文件(p12格式可以被浏览器识别并安装到证书库中)
- D:\work\OpenSSL\bin>openssl pkcs12 -export -clcerts -in user-cert.pem -inkey user-key.pem -out user.p12
- Loading 'screen' into random state - done
- Enter Export Password://不输入密码,为空
- Verifying - Enter Export Password://不输入密码,为空
- 将签证之后的证书文件user-cert.pem导入至信任秘钥库中(这里由于没有去ca认证中心购买个人证书,所以只有导入信任库才可进行双向ssl交互)
- D:\work\OpenSSL\bin>keytool -import -alias user -trustcacerts -file user-cert.pem -keystore exampletrust.jks
需要把最后增加证书的信任秘钥库exampletrust.jks重新复制到domain目录下。
接下来,双击刚才生成的p12文件,将用户证书安装到浏览器的证书库中,步骤就不说了。
现在重新启动weblogic的domain,访问https://localhost:7002/mini-web,出现如下图所示界面:
由于user证书已经安装到浏览器的证书库中了,当访问mini-web时,弹出确认证书窗口
确定之后,需要授予权限,并且输入授权的密码。点击确定按钮之后,直接由spring security根据证书的CN标识完成自动登录,并授予权限,如下图所示:
至此,weblogic的ssl(单向、双向)总算梳理完毕。不足的地方,还有待补充。
相关推荐
WebLogic11g-负载分发WebLogic11g-负载分发WebLogic11g-负载分发WebLogic11g-负载分发
Weblogic服务器双向ssl配置,有图解说.包你懂!www.javago.net
自用CVE-2018-3191 weblogic反序列化exp。
weblogic11g多机集群配置
K8 weblogic-CVE-2018-2628-getshell 渗透测试工具!请勿滥用! K8 weblogic-CVE-2018-2628-getshell 渗透测试工具!请勿滥用!
技术分享:讲述如何在 WebLogic Server 11g 上配置集群中的节点服务器,以及通过控制台启动和停止服务器
weblogic10.36 CVE-2018-2893补丁文件 最新补丁文件,修复 WebLogic(CVE-2018-2893)安全漏洞预警,oracle官方发布了2018年4月份的关键补丁更新CPU(CriticalPatchUpdate),其中包含一个高危的Weblogic反序列化漏洞...
为了更加安全有效的访问网页,配置SSL可以有效加密我们的应用。
WebLogic SSL 配置手册 WebLogic SSL 配置手册 WebLogic SSL 配置手册
WebLogic 集群中SSL 配置说明。WebLogic 集群中SSL 配置说明
weblogic11g 安装配置,5、1 创建集群的过程 16 5、2 被管理server加入sleblis集群 18 5、3 启动weblogic server被管理server 19 5、4 NODE Managed管理 20 5、4、1 实际环境配置node节点的过程 21 5、4、2 执行wlst...
weblogic---Eclipse插件,用在Eclipse上的插件,配置完成后便于用其作为开发的使用的服务器
解决weblogic部署JAX-WS部署问题,内含所需配置文件和操作步骤
----------------------------------20191010 ---------------------------- 本方法经本人亲自使用写下,在 检查 冲突 一步 检查 了很久大约 30分钟 ,但是最后也是成功了,所以只要不报错就可以 把补丁打上,如果 ...
weblogic11G超详细安装及配置教程,非常详细,亲测有效。
WEBLOGIC 11G密码忘记,重新初始化密码方法! WEBLOGIC 11G密码忘记,重新初始化密码方法! WEBLOGIC 11G密码忘记,重新初始化密码方法!
weblogic11g安装与卸载
Apache_WebLogic9.2.2安装及集群、SSL配置手册,PDF文件。
WebLogic 11g配置数据库连接池