代码改变世界

用keytool生成证书

2017-04-29 08:39  tlnshuju  阅读(357)  评论(0编辑  收藏  举报

1、证书查看与删除

查看是否已创建过同名的证书

keytool -list -v -alias ssotest -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit
删除已创建的证书

keytool -delete -alias ssotest -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit

以上的ssotest为证书名

2、生成服务端密钥文件

打开cmd窗体,输入下面命令:

keytool -genkey -alias ssotest -keypass 123456 -keyalg RSA  -keystore test.keystore  -validity 365

说明:

-genkey      在用户主文件夹中创建一个默认文件".keystore",还会产生一个mykey的别名。mykey中包括用户的公钥、私钥和证书 

-alias          产生别名

-keypass    指定私钥password

-keyalg      指定密钥的算法    

-keystore   指定密钥库的名称(产生的各类信息将不在.keystore文件里

-validity      指定创建的证书有效期多少天

另外提示的输入keystorepassword应与-keypass指定的同样;您的名字与姓氏是CASserver使用的域名(不能是IP。也不能是localhost),其他项任意填。

3、生成服务端证书

依据以上生成的服务端的密钥文件能够导出服务端证书,运行下面命令:

keytool -export -alias ssotest -storepass 123456 -file test.cer -keystore  test.keystore

说明:

-export       将别名指定的证书导出到文件

-alias          指定别名为ssotest

-storepass  指定私钥为123456

-file             指定导出证书的文件名称为test.cer

-keystore    指定之前生成的密钥文件的文件名称test.keystore

4、导入证书

运行下面命令:

keytool -import -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -file test.cer -alias ssotest 

之后会要求输入密钥库口令,默觉得:changeit

5、配置tomcat

打开tomcat下的conf/server.xml,找到下面片段:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
替换成:

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
    disableUploadTimeout="true" enableLookups="false" maxThreads="25"
    port="8080" keystoreFile="keystore证书路径" keystorePass="123456"
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
    secure="true" sslProtocol="TLS" />