在本地配置 https 服务器详细流程
一:为服务器生成证书
1. 找到 jdk 安装目录,运行控制台,切换到该目录:
2. 使用 keytool 为 tomcat 生成证书:tomcat.keystore;
keytool -genkey -v -alias tomcat -keyalg RSA -keystore tomcat.keystore -validity 36500
备注:在名字和姓氏位置,一定要写回调地址对应的域名或 IP 地址
二:为客户端生成证书
1. 生成客户端证书:client.p12
keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore client.p12 -validity 36500
备注:在名字和姓氏位置,一定要写回调地址对应的域名或 IP 地址
三:让服务器信任客户端证书
1. 将 client.p12 转换成 client.cer;
keytool -export -alias client -keystore client.p12 -storetype PKCS12 -rfc -file client.cer
2. 将 client.cer 导入到 tomcat 的信任证书链中
keytool -import -alias client-v -file client.cer -keystore tomcat.keystore
四:让客户端信任服务器证书
1. 把 tomcat 证书导出为 tomcat.cer 文件(导出根证书)
keytool -export -v -alias tomcat -file tomcat.cer -keystore tomcat.keystore
2. 把 tomcat.cer 文件转换成 tomcat.pem 文件,并上传到 IoT 平台的应用(需要安装 openssl)
openssl x509 -inform der -in tomcat.cer -out tomcat.pem
五:将华为提供的证书导入 tomcat 的信任证书链中
1. 先将化为提供的 outgoing.CertwithKey.pkcs12 转换成 outgoing.CertwithKey.pem 证书
openssl pkcs12 -in outgoing.CertwithKey.pkcs12 -out outgoing.CertwithKey.pem
EnterImport Password 为:IoM@1234,下面两个输入密码的地方可自行设置
再把 outgoing.CertwithKey.pem 导入 tomcat 的信任证书链
keytool -import -v -file outgoing.CertwithKey.pem -alias huawei_out -keystore tomcat.keystore
2.先将 ca.jks 转换成 ca.p12 证书
keytool -importkeystore -srckeystore ca.jks -destkeystore ca.p12 -srcstoretype jks -deststoretype pkcs12
上面的两个输入密码的地方可自行设置, 源密钥库口令为:Huawei@123
再把 ca.p12 转换成 ca.pem 证书
openssl pkcs12 -in ca.p12 -out ca.pem
密码为上面自己设置的目标密钥库口令
最后把 ca.pem 导入 tomcat 的信任证书链
keytool -import -v -file ca.pem -alias huawei_ca -keystore tomcat.keystore
密码为生成服务器证书时设置的密码。
六:配置 Tomcat 服务器
属性说明:
clientAuth:设置是否双向验证,默认为 false,设置为 true 代表双向验证
keystoreFile:服务器证书文件路径
keystorePass:服务器证书密码
truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书
truststorePass:根证书密码
七:测试
1. 启动 tomcat 服务器
找到 tomcat 安装目录,运行控制台,切换到该目录的 bin 文件夹下
执行 shutdown.bat 和 startup.bat 命令开启 tomcat 服务器。
2.在浏览器输入 https://localhost:8443
没有安装证书的时候页面显示如下:
3.将 outgoing.CertwithKey.pkcs12 证书导入到个人