猜测是配置在nginx的https证书过期了,所以打算自己生成一个新的证书
首先查找资料,使用openssl制作https证书,相关链接:https://www.csdn.net/tags/Mtjakg0sODI5ODAtYmxvZwO0O0OO0O0O.html
2.使用openssl制作证书 2.1 生成私钥openssl genrsa -out private.key 2048
genrsa: 表示使用rsa算法,openssl还支持RSA, DSA, ECDSA, and EdDSA,
private.key:私钥的名称,xxx.key
2048:表示私钥的大小,单位为位
私钥生成后可使用cat 命令查看,其内容为pem格式
openssl rsa -in private.key -pubout -out public.key2.3 通过私钥生成自签名证书(不基于csr)
openssl req -new -x509 -days 3650 -key private.key -out cert.crt
-x509:表示证书格式
-day: 表示证书的有效天数
根据提示输入相关信息,Common Name 可绑定域名或ip地址,域名可配通配符。
ssl_certificate /opt/ssl/cert.crt;#证书,支持格式pem和crt ssl_certificate_key /opt/ssl/private.key;#私钥3.2 验证
点击查看项目链接,会提示你这是一个不安全的链接,其实就是你项目配置的新的证书因为不是计算机信任的CA证书机构颁发的证书,只是你自己生成的证书,所以你用浏览器访问的时候,它在计算机受信任的证书中心找不到。所以你可以点击图片中的《高级》按钮,然后点击《 继续访问 xxx (不安全)》,这个操作会将你的新证书添加到计算机受信任的证书中心,这样下次你访问这个网站的时候,就不会提示你了。当然你也可以手动将新证书添加到计算机受信任的证书中心,附链接https://blog.51cto.com/u_15127637/3989337
报错内容:
unable to find valid certification path to requested target4.1 将新证书导入到JDK中 4.1.1 切换到jre的/lib/security/下 4.1.2 执行如下命令
keytool -import -alias <证书的别名,可以随便取> -keystore-file <新证书的绝对路径>
其中:
-alias 指定别名(推荐和证书同名)
-keystore 指定存储文件(此处固定),当切换到 cacerts 文件所在的目录时,才可指定 -keystore cacerts, 否则应该指定全路径
-file 指定证书文件全路径(证书文件所在的目录)
注意事项:此时如果报can not find cacerts 文件,则可能是因为文件权限的问题,将文件的归属人设置为当前账户就可以继续执行了
4.1.3 随后命令行会提示你输入cacerts证书库的密码,敲入changeit即可,这是java中cacerts证书库的默认密码,当然也可自行修改。
证书导入成功



