快速业务通道

在GlassFish v2中使用SSL - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
注意: s1as 是 GlassFish v2 keystore 的默认别名。

使用以下命令为应用程序服务器生成新密钥对:

keytool -genkeypair -keyalg

-keystore keystore.jks -validity -alias s1as

其中,<key_alg> 是用于生成密钥对的算法,例如 RSA。 <val_days> 为证书的有效天数,例如 365。

在GlassFish v2中使用SSL(2)

时间:2011-07-08 Kumar Jayanti

注意:除了生成密钥对,该命令会将公钥包含到一个自签名的证书中,并将证 书和私钥存储在一个由该别名标识的新 keystore 条目中。

确保证书的名称与网站的完全限定主机名匹配是非常重要的。如果名称不匹配 ,则连接到服务器的客户端将会看到一个安全警告,提示证书的名称与站点的名 称不匹配。你应该注意到默认的自签名证书的名称与完全限定的主机名匹配。

通过以下命令生成证书签名请求(CSR):

keytool -certreq -alias s1as -file

-keystore keystore.jks -storepass

其中,<certreq_file> 是存储 CSR 的文件,例如 s1as.csr,而 <store_passwd> 为 keystore 的密码,例如 changeit。

将 CSR 提交到 CA,比如 VeriSign。您将收到一个签名的服务器证书作为回 应。确保将 CA 的 CA 证书以及 CA 在回应中表明的任何中间证书导入到浏览器 。

将来自的 CA 的已签名服务器证书(包括标记 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)存储到某个文件中,比如 s1as.cert。下载 CA 证书以及所有中间 CA 证书,并将它们存储到本地文件中。参考浏览器文档中有 关如何将 CA 和中间 CA 证书导入到浏览器的说明。CA 可能提供了如何将 CA 证 书导入到各种浏览器(Mozilla 和 Internet Explorer)的信息。

使用从 CA 获得的证书(存储在一个文件中,比如 s1as.cert)代替原始的自 签名证书。您可以使用 keytool 来执行此任务,但是需要好几步来执行。运行以 下 Java 程序来执行该替换会比较容易:

import java.io.*; import java.security.Key; import java.security.KeyStore; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; public class Main { public static void main(String[] args) throws Exception { //args[] error checking logic omitted //file containing signed cert reply from CA String csrReplyFromCA = args[0]; //Path to GlassFish keystore.jks String keystoreLocation = args[1]; //Password for GlassFish keystore.jks String keystorePassword = args[2]; //The keyalias to be replaced : s1as in our example String selfSignedKeyEntry = args[3]; //create the signed Cert Certificate cert = null; FileInputStream fis = new FileInputStream(csrReplyFromCA); CertificateFactory cf = CertificateFactory.getInstance("X.509"); cert = cf.generateCertificate(fis); //now replace the original entry char[] passwordChars = keystorePassword.toCharArray (); KeyStore keystore = KeyStore.getInstance ("JKS"); keystore.load(new FileInputStream (keystoreLocation), passwordChars); Key key = keystore.getKey (selfSignedKeyEntry, passwordChars); keystore.setKeyEntry (selfSignedKeyEntry, key, passwordChars, (new Certificate[] {cert})); keystore.store(new FileOutputStream( keystoreLocation), passwordChars); } }

在GlassFish v2中使用SSL(3)

时间:2011-07-08 Kumar Jayanti

运行该程序后,您会发现 GlassFish keystore 中的证书 s1as 已不再是

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号