`
kevin.wang
  • 浏览: 251172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用openssl创建ssl证书 并转换为keystore

 
阅读更多
参考http://blog.sina.com.cn/s/blog_4fd50c390101891c.html
http://www.blogjava.net/javabloger/archive/2008/04/17/193800.html

x509证书一般会用到三类文,key,csr,crt。
Key 是私用密钥openssl格,通常是rsa算法。
Csr(Cerificate Signing Request)是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申请,还可以设定一个密钥。
crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证。

1.key的生成
openssl genrsa -des3 -out server.key 2048 

这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。

可以通过以下方法生成没有密码的key:
openssl rsa -in server.key -out server.key 

server.key就是没有密码的版本了。

2. 生成CA的crt
openssl req -new -x509 -key server.key -out ca.crt -days 3650 

生成的ca.crt文件是用来签署下面的server.csr文件。

3. csr的生成方法
openssl req -new -key server.key -out server.csr 

需要依次输入国家,地区,组织,email。最重要的是有一个common name,可以写你的名字或者域名。如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报。生成的csr文件交给CA签名后形成服务端自己的证书。

4. crt生成方法
CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢。
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

输入key的密钥后,完成证书生成。-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成。
最后生成了私用密钥:server.key和自己认证的SSL证书:server.crt
证书合并:
cat server.key server.crt > server.pem


由于tomcat配置ssl时,需要keystore文件
获得pem
cat server.key> key.pem
cat server.crt> crt.pem

将pem文件导入keystore
openssl pkcs8 -topk8 -nocrypt -in key.pem -inform PEM -out key.der -outform DER
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER

Now comes the tricky bit, you need something to import these files into the JKS. ImportKey will do this for you, get the ImportKey.java (text/x-java-source, 6.6 kB, info) source or the compiled (Java 1.5 !) ImportKey.class (application/octet-stream, 3.3 kB, info) and run it like

java ImportKey key.der cert.der


生产keystore.ImportKey文件(默认路径在当前用户文件夹下)
分享到:
评论

相关推荐

    SSL中各证书的转换

    - 使用OpenSSL命令将`.p12`文件转换为`.pem`格式: ```shell openssl pkcs12 -in d:\tomcatclient.p12 -out d:\key.pem ``` 其中,“d:\tomcatclient.p12”是输入的`.p12`文件路径,“d:\key.pem”是输出的`.pem...

    Openssl与数字证书

    2. **创建证书请求**:使用`openssl req`命令创建证书请求文件。 3. **自签名证书**:如果不需要第三方认证,可以直接使用`openssl x509`命令生成自签名证书。 4. **证书签名请求**:如果需要第三方认证,需要将证书...

    keystoke证书转换nginx证书工具

    标题提到的"keystoke证书转换nginx证书工具"是一个帮助管理员处理SSL/TLS证书的实用程序,特别针对从Java的`keytool.exe`生成的`.keystore`格式证书进行转换。`keytool`是Java Development Kit (JDK) 自带的一个...

    SSL证书安装.zip

    - **导入证书**:将SSL证书转换为PKCS12格式,然后使用Java的`keytool`导入到Keystore中。 - **编辑server.xml**:在`Connector`元素中配置SSL,指定Keystore路径、密码和端口。 - **重启Tomcat**:修改后,重启...

    Tomcat6和5.5配置使用SSL双向认证(使用openssl生成密钥).rar

    使用openssl的`pkcs12`命令将CA、Server和Client证书转换为PKCS12格式,然后导入到Java的JKS文件中。JKS文件通常命名为`keystore.jks`,并需要设置访问密码。 **五、配置Tomcat SSL** 在Tomcat的`conf/server.xml`...

    OpenSSL证书管理

    使用`openssl genrsa`命令创建一个2048位的AES256加密私钥(`private/ca.key.pem`),并设置密码为“111111”。这一步是整个证书链的基础,因为所有其他证书都是由这个根证书签发的。 2. **生成根证书签发申请**:...

    nginx证书转换jks

    在上述配置中,指定了Nginx监听端口为443,并使用转换后的证书文件。此外,还设置了其他一些SSL相关的配置项,如协议版本、会话超时时间等。 #### 四、总结 通过以上步骤,我们可以顺利地将JKS格式的证书文件转换为...

    java程序实现ssl

    - **导出PEM格式**:通常需要将证书和私钥转换为Java能识别的PEM格式,使用`openssl pkcs8`和`openssl pem`命令。 - **导入到Java KeyStore**:将PEM文件导入到Java KeyStore(JKS)中,使用`keytool`命令。 在`...

    数字证书查看、拆分和格式转换工具

    本文将深入探讨“数字证书查看、拆分和格式转换工具”这一主题,涉及的关键词包括“SSL”、“keystore”、“crt”和“key”。 首先,让我们了解SSL(Secure Sockets Layer)和它的升级版TLS(Transport Layer ...

    keystore转x509.pem、pk8工具,兼容windows、linux

    它将keystore中的私钥导出为pk8格式,然后使用openssl工具将pk8和公钥证书转换为x509.pem格式。 对于Linux或Unix用户,keystore2pem.sh的工作原理相似,但可能需要先确保openssl工具已经安装。运行脚本时,同样需要...

    Tomcat_SSL.rar

    将OpenSSL生成的私钥和证书转换为JKS或PKCS12格式,可以使用`keytool`(在Java SDK中)或`openssl pkcs12`命令。 6. **证书链**:如果使用了中间证书,你需要将它们导入到密钥库中,确保所有必要的证书都在链条中,...

    iOS企业级应用的tomcat服务器和客户端配置

    同样通过`openssl genrsa`生成服务器私钥,`openssl req -new`创建CSR(Certificate Signing Request),接着使用`openssl x509`将CSR转换为SSL证书。在这个过程中,你需要提供服务器的IP地址或其他标识信息。最后,...

    A few frequently used SSL commands

    当你需要为已有私钥创建CSR时,可以使用`openssl req -out MYCSR.csr -key MYKEY.key -new`。 5. **基于现有X509证书生成CSR** `openssl x509 -x509toreq -in MYCRT.crt -out MYCSR.csr -signkey MYKEY.key`命令...

    openssl-0.9.8-for-windows

    OpenSSL提供了许多命令行工具,例如`openssl s_client`用于测试SSL/TLS连接,`openssl req`用于创建证书请求,`openssl x509`用于处理X.509证书等。在本场景中,我们使用了`openssl sha1`来计算散列值,`openssl ...

    服务器证书安装指南(Websphere)

    这通常可以通过证书颁发机构提供的转换工具或使用OpenSSL命令来实现。 #### 2.2 查看证书库内容 导入证书后,可以通过`keytool-list-keystore`命令来查看证书库中的证书信息,确认证书是否已经成功导入。这有助于...

    创建HTTPS安全证书

    1. **将证书转换为JKS格式**: ```shell keytool -importcert -file certificate.crt -alias mycert -keystore keystore.jks -storepass password ``` 这里`certificate.crt`是证书文件,`mycert`是别名,`keystore...

    Tomcat6配置使用SSL双向认证

    这通常涉及到使用Java的`SSLContext`和`SSLSession`等类来获取客户端证书,并验证其是否有效。 1. **获取客户端证书** 在处理HTTP请求的过程中,可以使用`HttpServletRequest`对象的`getHeader("X-Client-Cert")`...

    回调地址CA证书制作说明1

    当收到的是.keystore或.jks格式的证书时,可以通过`keytool`工具将其转换为PKCS12格式,再使用`openssl`将其转为.pem格式。例如: ```bash # 将.keystore转为PKCS12 keytool -importkeystore -srckeystore debug....

Global site tag (gtag.js) - Google Analytics