`
zhushidan100
  • 浏览: 30270 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Openssl + JDK keytool 证书制作

 
阅读更多

1.创建CA的私钥 1.创建CA的私钥 
执行以下命令opensslgenrsa -des3 -out mykey/ca.key 1024   ( mykey/  当前目录下的mykey目录,事先要建立好)
接下来会提示你输入密码.


2.
创建CA证书 (根证书)
openssl req -new -x509 -key mykey/ca.key -out mykey/ca.crt -days 365
x509
是一种加密的标准,-out是指输出的文件路径,-key是指定私钥,也就是上一步生成的那个,-days是指证书有效期。
注:再输入commonname时你可以指定你自己的名字,但是不能输入你的服务器名(www.XX.X.com

 

3.创建server端的私钥 
因为咱们是要在server端提供SSLwebservice,所以在server端需要使用私钥库和信任库。
openssl genrsa -des3 -out  mykey/server.key1024

 

4.创建server证书签名请求 
我们可以发送签名请求到一个官方的CA机构,这些机构都是要收费的,而且还要严格审核,至于我们自己开发过程中的话实在是没必要。我们直接发送到我们刚才通过openssl构建的CA就可以了。
openssl req -new -key  mykey/server.key-out  mykey/server.csr
注意这里的commonname,此处填写你的服务器的ip或者域名,例如localhost,也就是你要为哪台服务器做证书就指定那台机器。

 

5.CA签署server证书 
如果是第一次通过CA签署证书的话,执行如下命令
openssl x509 -req -days 30 -in  mykey/server.csr-CA mykey/ca.crt -CAkey mykey/ca.key -CAcreateserial -out  mykey/server.crt
其中的-CAcreateserial是指创建一个新的序列文件。这样openssl会在当前目录下创建一个名为ca.srl的文件存储序列号(官方是这样说的,我本地产生的序列文件是.srl,搞不清怎么回事,可能是创建时没指定名字吧,不过不影响后面的操作)。下次再次签署证书时就可以直接指定这个序列文件了。命令如下:openssl x509 -req -days 30 -in  mykey/server.csr -CA mykey/ca.crt -CAkey mykey/ca.key-CAserial mykey/ca.srl -out  mykey/server.crt
输入CA私钥的密码后签署成功。

 

6.创建server端的pkcs12文件 
openssl pkcs12 -export -in  mykey/server.crt-inkey  mykey/server.key -out  mykey/server.p12 -name demo_server
注意其中的-namedemo_server,这个是指定keystore的别名,记下来,很重要哦(weblogic要用到)。

 

7.转换pkcs12JKS keystore文件 
这个过程需要用到jetty.jar,下载相应jar后添加到classpath),然后执行如下命令
java org.mortbay.util.PKCS12Import  mykey/server.p12 mykey/server.jks

如果不添加到classpath,则执行:

java -cp org.mortbay.jetty.jarorg.mortbay.util.PKCS12Import mykey/server.p12 mykey/server.jks
在此处输入上一步设置到export password

Server
端相关文件就完成了,现在可以用javakeytool命令查看一下生成的server.jks的内容
keytool -v -list -keystore  mykey/server.jks
接下来开始准备client端的相关文件,如果serverclient相互认证,客户端的相关操作与server端类似,不做过多说明。

 

8.创建client端的私钥 
openssl req -new -newkey rsa:1024 -nodes  -out  mykey/client.req -keyout  mykey/client.key

 

9.创建client端证书签名请求 
openssl x509 -CA mykey/ca.crt -CAkey mykey/ca.key -CAserial mykey/ca.srl -req-in  mykey/client.req -out  mykey/client.pem -days 365

 

10.创建client端的pkcs12文件 
openssl pkcs12 -export -clcerts -in  mykey/client.pem -inkey  mykey/client.key -out  mykey/client.p12

 

11.创建client端的jks文件 
java org.mortbay.util.PKCS12Import  mykey/client.p12 mykey/client.jks

 

12.创建信任密钥库 
这次用到javakeytool命令
keytool -genkey -alias dummy -keyalg RSA -keystore  mykey/truststore.jks
到此为止数字证书的部分就完成了,下面介绍一下tomcat如何配置ssl支持。

 

13.CA认证过的证书导入信任库

keytool -import -v -trustcacerts-alias my_ca -file mykey/ca.crt -keystore  mykey/truststore.jks

通过下面的命令可以查看信任库的详细信息

keytool -v -list -keystore  mykey/truststore.jks


二、 tomcat ssl支持的配置 
1. 
tomcatserver.xml中添加一个新的connector,配置如下 

<Connector  port="8443" maxHttpHeaderSize="8192"  
SSLEnabled="true"
        maxThreads="150"  
        minSpareThreads="25"  
        maxSpareThreads="75"  
        enableLookups="false"  
        disableUploadTimeout="true"  
        acceptCount="100"  
        scheme="https"  
        secure="true"  
        clientAuth="false"  
        sslProtocol="TLS"  
        keystoreFile="/conf/server.jks"  
        keystorePass="XXXXXX"  
        algorithm="SunX509"  
     />  
 
注:keystoreFile对应server端的jks文件,keystorePass对应其密码

2. 
重启tomcat,在浏览器中敲入https://localhost:8443/测试一下 

 

分享到:
评论

相关推荐

    CA.zip_certificates_openssl 证书_数字证书

    Keytool是Java开发工具包(JDK)自带的一个命令行工具,主要用于管理密钥对和证书。通过Keytool,我们可以创建一个密钥库,其中可以存储私钥和对应的数字证书。以下是使用Keytool生成自签名证书的基本步骤: 1. ...

    自签证书制作

    通过openssl制作自签三级证书,即根证书、中间证书、和服务证书。 2.添加自签证书为可信证书 3.1 win添加自签证书为可信证书 3.2 centos添加自签证书为可信证书 3.3 JDK添加自签证书为可信证书 3.证书格式...

    weblogic制作证书实现HTTPS

    #### 三、制作证书 ##### 1. 创建私钥 使用OpenSSL命令行工具创建私钥: ```bash openssl genrsa -out D:\SSL\openssl\ca-key.pem 1024 ``` ##### 2. 创建证书请求 创建一个证书请求文件: ```bash openssl req -...

    SSL中各证书的转换

    转换过程涉及使用`keytool`命令行工具,该工具是JDK的一部分。 #### 操作步骤 - 首先,确保已经安装了JDK,并且环境变量中包含了JDK的`bin`目录。 - 使用`keytool`命令将`.cer`文件导入到`.jks`文件中: ```shell ...

    java获取数字证书信息

    在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和JDK搭建SSL服务 ##### 1. ...

    cas 自签名证书制作及应用 操作说明及相关配置

    1、该文档执行的前提:windows、安装openssl工具、下载nginx服务器、安装jdk并配置环境变量 (压缩包 包括了openssl、nginx和相关的配置文件) 2、下载 openssl.cnf文件- 修改commonName、commonName_default、[alt_...

    pfx证书安装

    如果需要使用JKS格式证书,可以使用java jdk将PFX格式证书转换为JKS格式证书。命令如下: `keytool -importkeystore -srckeystore 214756945520466.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -...

    Tomcat SSL 认证设置及证书自己生成

    keytool是Java提供的命令行工具,用于管理JDK的密钥库,也可以用于生成和管理SSL证书。 **自签发CA证书** 1. 首先,你需要使用OpenSSL生成一个私钥(private key)和证书签名请求(CSR)。私钥将被用于解密通过SSL...

    Weblogic应用使用PKI证书认证

    这通常使用JDK自带的`keytool`工具完成: 1. 生成密钥对:使用`keytool -genkey`命令创建RSA算法的密钥对。 2. 创建证书请求:通过`keytool -certreq`命令生成证书请求文件。 3. 导入服务器证书:使用`keytool -...

    opesnssl证书配置和使用1

    keytool是JDK自带的证书管理工具,可以用来生成和管理密钥对,以及导入和导出证书。 8. **Apache和Nginx配置**:Apache和Nginx都是常见的Web服务器,它们支持SSL模块,通过修改配置文件(如Apache的httpd.conf或...

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

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

    keystoke证书转换nginx证书工具

    `keytool`是Java Development Kit (JDK) 自带的一个命令行工具,用于管理密钥对和数字证书。 首先,我们需要理解SSL/TLS证书的基础知识。SSL(Secure Socket Layer)和其后续版本TLS(Transport Layer Security)是...

    把Https网站中的安全证书导入到java的cacerts证书库中

    - 最后,指定cacerts文件的位置(通常在JDK安装目录下的`lib/security`目录下),运行`keytool`命令,输入相应的参数(如 `-importcert`,`-keystore`,`-trustcacerts`,`-file` 和 `-alias`)进行导入。...

    Sslforfree证书应用于Tomcat.pdf

    使用openssl工具可以将证书和私钥打包成.pfx文件,然后再使用keytool工具将.pfx文件导入到JKS密钥库中。 有时候,还需要将证书导入到JDK的默认密钥库cacerts中,以确保Java运行环境信任该证书。这通常在浏览器中...

    CA证书资源包(全版本通用)

    在Java中,这个文件可以被添加到JDK的`jre/lib/security/cacerts`信任库中,通过keytool命令进行管理。 **证书链的建立:** 在实际应用中,一个证书不仅需要包含CA的签名,还可能包含其他中间CA的证书,形成一个...

    SSl双向认证学习笔记  .doc

    keytool是JDK集成环境中的一部分,用于生成、管理和操作数字证书。常用的keytool命令有: * genkey:生成一个新的密钥对和证书。 * -alias:指定别名。 * -keystore:指定密钥库的名称。 * -keyalg:指定密钥的算法...

    从零开始搭建Linux测试环境.txt

    jdk+apache+jboss +mod_jk+openssl 软件介绍 1.JDK(Java DevelopmentKit)。Java开发工具包。大家都知道Java程序可以在绝大多数的机器上运行,不需要安装任何额外的软件,为什么我们要安装JDK呢?这是因为Java...

    WebLogicSSL解决苹果IOS itms下载问题NEW

    这需要使用JDK提供的`keytool`工具。 1. **生成初始密钥库**:使用`keytool`命令生成一个JKS文件,包含服务器的RSA密钥对和证书信息。 ``` keytool -genkey -alias serveralias -keyalg RSA -keysize 1024 -dname...

    java keystore导出.pfx .key .crt 私钥

    Java KeyStore文件转换为微软的.pfx文件和OpenSSL的PEM格式文件(.key + .crt) 运行方式: JKS2PFX 文件&gt; 密码&gt; 别名&gt; &lt;导出文件名&gt; [Java Runtime的目录] Java Runtime的目录,指包含Java.exe和keytool.exe的目录...

    https双向认证 .doc

    我们需要提前准备好自签名证书,可以使用openssl生成,也可以使用jdk自带的keytool生成。Windows操作系统可能没有openssl,可能需要先安装一个openssl的window版本。 自签名证书用于和服务端表明客户端的身份以及对...

Global site tag (gtag.js) - Google Analytics