读书人

Glassfish v2 轮换及使用自定义证书

发布时间: 2012-11-05 09:35:11 作者: rapoo

Glassfish v2 替换及使用自定义证书

Glassfish v2 在安装的时候会自动生成一个自签名证书存放在:

$glassfish_home/domain/domain1/config/keystore.jks 文件中

其中cacert.jks作为truststore库文件,truststore是用来存储可信的客户端的证书。

  1. 使用上面描述的方法生成一个服务器端使用的个人数字证书:glassfishsrv.pk12
  2. 修改glassfish证书库keystore.jks访问密码,初始密码是:changeit

停掉服务器: ./asadmin stop-domain domain1

执行命令:?? ./asadmin change-master-password --savemasterpassword=true

系统会提示你输入新的密码并确认输入。

  1. 删除glassfish 自带的证书:

Keytool delete alias s1as keystore keystopre.jks storepass <xxx>

其中<xxx>是keystore密码,未修改之前是changeit,修改之后就是step2输入的新密码。

删除后可用命令 keytool -list -rfc -keystore keystore.jks查看里面的证书是否还存在,如果空了说明删除成功。

  1. 导入testCA签发的服务器证书

首先学习下security相关的各种文件的格式和作用:

各语言需要的证书格式并不一致,比如说Java我们采用jks,.Net采用pfx和cer,Php则采用pem和cer;本文会对Security证书相关各类文件格式进行一个汇总,并描述各种格式的适用场景;主要分成两类,其一为密钥库文件格式、其二为证书文件格式;

? 密钥库文件格式【Keystore】

格式

扩展名

描述

特点

JKS

.jks/.ks

【Java Keystore】密钥库的Java实现版本,provider为SUN

密钥库和私钥用不同的密码进行保护

JCEKS

.jce

【JCE Keystore】密钥库的JCE实现版本,provider为SUN JCE

相对于JKS安全级别更高,保护Keystore

私钥时采用TripleDES

PKCS12

.p12/.pfx

【PKCS #12】个人信息交换语法标准

1、包含私钥、公钥及其证书
2、密钥库和私钥用相同密码进行保护

BKS

.bks

【Bouncycastle Keystore】密钥库的BC实现版本,provider为BC

基于JCE实现

UBER

.ubr

【Bouncycastle UBER Keystore】密钥库的BC更安全实现版本,provider为BC

?

?

? 证书文件格式【Certificate】

格式

扩展名

描述

特点

DER

.cer/.crt/.rsa

【ASN .1 DER】用于存放证书

不含私钥、二进制

PKCS7

.p7b/.p7r

【PKCS #7】加密信息语法标准

1、p7b以树状展示证书链,不含私钥
2、p7r为CA对证书请求签名的回复,只能用于导入

CMS

.p7c/.p7m/.p7s

【Cryptographic Message Syntax】

1、p7c只保存证书
2、p7m:signature with enveloped data
3、p7s:时间戳签名文件

PEM

.pem

【Printable Encoded Message】

1、该编码格式在RFC1421中定义,其实PEM是【Privacy-Enhanced Mail】的简写,但他也同样广泛运用于密钥管理
2、ASCII文件
3、一般基于base 64编码

PKCS10

.p10/.csr

【PKCS #10】公钥加密标准【Certificate Signing Request】

1、证书签名请求文件
2、ASCII文件
3、CA签名后以p7r文件回复

SPC

.pvk/.spc

【Software Publishing Certificate】

微软公司特有的双证书文件格式,经常用于代码签名,其中
1、pvk用于保存私钥
2、spc用于保存公钥

?

由于上面使用openssl生成的个人数字证书,里面包含私钥,证书(证书中包含公钥)和签发证书的CA的证书,这些都包括在glassfishsrv.pk12文件中。Keytool没有命令支持直接把pk12/pfx文件导入keystore.jks库中。到XWSS下载页面下载pkcs12import的工具包,解压后里面的pkcs12import.jar放到类路径中,执行如下命令将pk12种信息导入keystore.jks:

pkcs12import file glassfishsrv.pk12 alias slas keystore keystore.jks storepass <xxx>

-pass <exp_password>

其中<xxx>是keystore.jks的访问密码,<exp_password>是生成pkcs12文件时候输入的密码。

完成后可以用

keytool -list -v -keystore keystore.jks

查看密钥库中的证书详细信息是否是新导入的pk12中的信息。

?

参考资料:

利用openssl创建一个简单的CA

?

glassfish v2 使用ssl

?

http://weblogs.java.net/blog/kalali/archive/2007/08/how_to_have_you.html

?

http://blogs.sun.com/enterprisetechtips/entry/using_ssl_with_glassfish_v2

?

???? Sun Application Server Security Config

读书人网 >软件架构设计

热点推荐