第一步:生成秘钥库
我们采用JDK自带的keytool工具生成秘钥库,别名 highway.dev ,存储路径:E:\etc\cas\keystore,别名和存储路径按自己的实际情况设置。
keytool -genkey -v -alias highway.dev -keyalg RSA -keystore E:\etc\cas\keystore\highway.dev.keystore -validity 36500
-genkey:表示要生成一个新的密钥对
-v:表示在生成密钥对的过程中显示详细的信息
-alias highway.dev:表示为生成的密钥对指定一个别名,这里的别名是 "highway.dev"
-keyalg RSA:表示要使用 RSA 算法生成密钥对
-keystore E:\etc\cas\keystore\highway.dev.keystore:表示要将生成的密钥对存储在指定的密钥库文件中(E:\etc\cas\keystore\highway.dev.keystore)
-validity 36500:表示生成的证书的有效期为 36500 天,即大约100年。
姓名与姓氏、组织单位名称、组织名称 很有讲究,填写自己设置的域名 highway.dev.com
第二步:从秘钥库里导出证书
keytool -export -trustcacerts -alias highway.dev -file E:\etc\cas\keystore\highway.dev.cer -keystore E:\etc\cas\keystore\highway.dev.keystore
-export:表示执行导出操作,将证书导出到一个文件
-trustcacerts:表示导出的证书应该包含完整的证书链,并且可以被信任
-alias highway.dev:表示要导出的证书的别名,这里的别名是 "highway.dev"
-file E:\etc\cas\keystore\highway.dev.cer:表示导出的证书应该保存到指定的文件路径(E:\etc\cas\keystore\highway.dev.cer)
-keystore E:\etc\cas\keystore\highway.dev.keystore:表示要从指定的密钥库(E:\etc\cas\keystore\highway.dev.keystore)中导出证书。
第三步:将证书导入到JDK证书库
keytool -import -trustcacerts -alias highway.dev -file E:\etc\cas\keystore\highway.dev.cer -keystore "D:\Program Files\Java\jdk1.8.0_231\jre\lib\security\cacerts"
-import:表示执行导入操作,即将证书导入到指定的信任证书库中
-trustcacerts:表示将证书导入到信任的 CA 证书库中,以便将其视为受信任的证书
-alias highway.dev:指定要分配给导入证书的别名,这里的别名是 "highway.dev"
-file E:\etc\cas\keystore\highway.dev.cer:指定要导入的证书文件的路径(E:\etc\cas\keystore\highway.dev.cer)
-keystore "D:\Program Files\Java\jdk1.8.0_231\jre\lib\security\cacerts":指定要将证书导入的信任证书库的路径,这里是 Java 安装目录中的 cacerts 文件
密码:changeit
第四步:Tomcat配置https支持
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\etc\cas\keystore\highway.dev.keystore"
keystorePass="mypassword"/>
参考命令
查看证书列表:keytool -list -keystore cacerts
查看单个证书:keytool -list -keystore cacerts -alias akazam_email
删除证书:keytool -delete -alias akazam_email -keystore cacerts
导入证书:keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts -trustcacerts
请注意,在生产环境中,建议获取由公信任的证书颁发机构(CA)签发的SSL证书,而不是使用自签名证书。这样可以确保浏览器和客户端能够正确地验证你的网站身份,并获得更高的安全性和可信度。
评论