java生成ssl证书和部署

自签名SSL证书的生成

自签证书虽然提示:不安全。但还是有很多的好处,所以下面先说说自签证书的生成,主要使用Java JDK下的:keytool.exe

2:安装完后,根据实际的路径找到keytool.exe,如我的在此路径:C:\Program Files (x86)\Java\jdk1.8.0_101\bin\keytool.exe

3:生成keystore。打开命令行(cmd),去到keytool所在的路径,运行:

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore E:\1work\mykeystore\keystore.p12 -validity 36500 -ext san=ip:127.0.0.1 -dname "CN=garyyan, OU=mycompany, O=mycompany, L=gd, ST=gd, C=china"

此命令中间只需要输入密码,就能生成keystore,假设密码是:123456

其中:

(1)keystore可理解为一个数据库,可以存很多个组数据。

每组数据主要包含下面两种数据:

a:密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)

b:可信任的证书实体(trusted certificate entries)——只包含公钥

(2)-keystore E:\1work\mykeystore\keystore.p12,指定在d:\mykeystore(先要手动创建此文件夹),生成keystore:keystore.p12

(3)-alias tomcat,为其指明在keystore中的唯一的别名:tomcat ,因为keystore中可能还存有其它的别名,如:tomcat 2

(4)-storetype PKCS12指明密钥仓库类型是PKCS12

(5)-keyalg RSA,指定加密算法,本例中的采用通用的RAS加密算法

(6)-keysize 2048指定密钥的长度为2048

(7)-validity 3650 指定证书的有效期为3650天

(8)-ext san=ip:192.168.100.132请根据你的服务器的IP地址设置,如果不进行设置,客户端在访问的时候可能会报错

(9)-dname “CN=garyyan, OU=mycompany,O=mycompany,L=gd, ST=gd, C=china”

其中:”CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)”,我在测试的过程中发现随便填就行

4:导出公钥证书(主要用于客户端):

运行命令:

keytool -export -keystore E:\1work\mykeystore\keystore.p12 -alias tomcat -file E:\1work\mykeystore\mycer.cer -storepass 123456

其中:

(1)-keystore d:\mykeystore\keystore.p12 是指上面的keystore文件

(2)-alias tomcat是指定别名为tomcat的那一组

(3)-file mycer.cer指定在当前目录生成名为mycer.cer的证书

(4)-storepass 123456是上面生成keystore 所用的密码

 <Connector

           port="443" maxThreads="200"

           scheme="https" secure="true" SSLEnabled="true"

     keystoreFile="E:/1work/mykeystore/keystore.p12"

     keystorePass="123456"

     keystoreType="PKCS12"

           clientAuth="false" sslProtocol="TLS"

     />

本文链接:https://my.lmcjl.com/post/9178.html

展开阅读全文

4 评论

留下您的评论.