在自己进行https配置的时候踩过了一些小坑,做个记录防止再犯!
-
如何找到免费的证书购买地方
只有选择了Symantec品牌之后,点击增强型 OV SSL 才可以出现免费的证书类型。
如下图:
-
签发过程中自己生成csr.
使用java keytool 的方式生成。生成公私钥对
keytool -genkeypair -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36000 -alias xxx.com -keystore xxx.keystore
创建csr 证书请求。
keytool -certreq -alias xxx.com -keystore xxx.keystore -file xxx.csr -v
-
域名地址要求是可解析的。相当于这个域名在网络是要可以解析的。
于是我又去新网注册购买了一个域名。(新网新注册用户会送一个券,可以免费买一个使用)
最好在域名解析DNS的地方换成阿里的DNS 服务器。这样域名的管理和证书就都在阿里云了。
阿里云的dns 服务地址 :
ns2.alidns.com
ns1.alidns.com -
下载的证书是pem格式,无法导入keystore。
通过openssl 转换格式为cer。openssl x509 -outform der -in D:/keys/www.feeltech.xyz/1675470_www.feeltech.xyz.pem -out D:/keys/www.feeltech.xyz/feeltech.cer
-
导入keystore 信任证书 报错 “无法从回复中建立链”
keytool -importcert -trustcacerts -alias www.feeltech.xyz -file www.feeltech.xyz.cer - keystore feeltech.keystore 输入密钥库口令: keytool 错误: java.lang.Exception: 无法从回复中建立链
无法从回复中建立链,原因是从根证书到我们的证书是一个树形链。中间缺失任何一个证书都不行。
查看自己的证书 找到链。导出中间各个证书。
双击cer文件 查看证书路径。
然后导出自己证书上面的每一层证书,点击自己证书的上面各个证书,然后->查看证书。点击详细信息->复制到文件,进入证书导出向导。
证书导出向导,注意格式选择Base64编码的 cer.
然后在按照层次依次导入keystore
对于提示证书已经存在于系统范围的 CA 密钥库中 就不要导入了。
重新导入后提示:D:\keys\www.feeltech.xyz>keytool -importcert -trustcacerts -alias intermediate -file 2.cer -keystore feeltech.keystore 输入密钥库口令: 证书已添加到密钥库中 D:\keys\www.feeltech.xyz>keytool -importcert -trustcacerts -alias www.feeltech.xyz -file www.feeltech.xyz.cer -keystore feeltech.keystore 输入密钥库口令: 证书回复已安装在密钥库中
完成导入。
-
证书格式的互相转换,让我把证书搞混了。总结下各个后缀的意思。
.pfx
PKCS12标准定义,包含公钥和私钥的二进制格式证书。
.cer
没有私钥,常在windows使用的证书。
.crt
也是证书,常在linux 系统使用。
p7b
树状展示证书链,不含私钥。
key
用来存放一个 公钥或者私钥。