栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

记一次JAVA项目https证书过期-------访问项目的时候,nginx返回:ERR

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记一次JAVA项目https证书过期-------访问项目的时候,nginx返回:ERR

1.访问项目的时候,nginx返回:ERR_CERT_DATE_INVALID


猜测是配置在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格式

2.2 通过私钥生成rsa公钥
openssl rsa -in private.key -pubout -out public.key
2.3 通过私钥生成自签名证书(不基于csr)
openssl req -new -x509 -days 3650 -key private.key -out cert.crt

-x509:表示证书格式
-day: 表示证书的有效天数
根据提示输入相关信息,Common Name 可绑定域名或ip地址,域名可配通配符。

3.在nginx上配置新证书 3.1 将旧的证书配置替换成新的证书
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

4.新问题–将新证书导入到JDK中发现其他JAVA项目调用了这个新证书项目的接口,而且也使用的是https,这就导致了报错,因为JAVA客户端使用https去调用接口,也是需要信任这个新证书才行,所以在报错的项目所在的机器的JDK中需要导入证书

报错内容:

unable to find valid certification path to requested target
4.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证书库的默认密码,当然也可自行修改。


证书导入成功

4.2 重启报错的项目
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/837460.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号