使用Keytool为JDK添加https证书信任

使用Keytool为JDK添加https证书信任,第1张

在浏览器中访问是件挺方便的事 与访问站点相比 也就是地址栏上多个 s 但是 在java平台上访问 可就麻烦多了 Java虚拟机并不直接使用 *** 作系统的key ring 而是有自己的security manager 与 *** 作系统类似 jdk的security manager默认有一堆的根证书信任 如果你的站点证书是花钱申请的 被这些根证书所信任 那使用java来访问此站点会非常方便 但假如 你的证书是自己签名的 就需要将证书导入至JDK的信任证书中 否则访问时会报SSL错误 假如 你的webserice是基于来进行访问 而此站点证书是自签名类型的 那么部署时一定要使用keytool进行证书导入 否则无法正常访问     JDK keystore存放路径         默认在 $JAVA_HOME/jre/lib/security/cacerts 在我的Mountaion Lion中 存放路径为         /System/Library/Java/JavaVirtualMachines/ jdk/Contents/Home/lib/security/cacerts        keystore的默认密码        changeit         有人说OS X中java的 Keystore密码被更改成了 changeme 所以如果你用上面那个访问失败 可以试试这个         keytool乱码        keytool在OS X中经常显示为乱码 它在中文OS X中输出GB 编码 所以要将terminal的默认编码更改成GB 或者中文(ECU)

    导入证书        首先 先通过浏览器将证书下载下来 点击显示证书详细的时候 直接将图标拖动到桌面上即可

    通过keytool命令来导入证书 注意导入时需要管理员权限 所以命令前面要加sudo 不知道这个在win 系统上是不是也要如此 lishixinzhi/Article/program/Java/hx/201311/27119

一、网站https证书提示错误原因分析:

1、当前电脑系统时间错误,所有的http证书都有颁发日期和截止日期,电脑系统时间在证书有效时间区间之外有可能导致浏览器提示网站https证书已过期或还未生效。

2、网站的https证书确实已经过期,根据https证书签发国际标准,https证书颁发不能超过两年。

3、站点引用其它部署了https证书的外链,如果这个外链的证书过期了也会提示相应的错误。 能检测出外链有证书错误的终端设备有:手机浏览器、PC端IE6 (IE6以上的不提示)。

二、网站https证书提示错误的解决方法:

1、 电脑系统时间不对:将电脑系统的时间调整至https证书有效期之内。

2、 https安全证书过期:需要网站所有者到https证书签发机构CA续签证书。

3、 当前站点外链网站的https证书过期:需要网站所有者撤销外链或者外链网站所有者到CA机构替换或续费证书。

https证书即SSL证书,不受信任的原因如下:

原因一:证书来自不信任的CA机构

CA机构就是证书的颁发机构。如果对SSL证书有所了解,那么大家应该知道,证书是任何人都可以发布的,我们可以自己给自己的网站颁发证书,我们也可以把我们自己制作的证书给别人安装。这种证书是完全不需要成本的,只需要你对证书有一定的了解,但是这种证书是默认不受其他客户端信任的,通常客户端会提示“该证书来自不信任的CA机构”。目前全球权威CA机构有Symantec、GeoTrust、Comodo以及RapidSSL等多家。

原因二:证书过期

SSL证书都是有有效期的,如果站长购买后部署了证书,然后就忘记了证书这一件事情。等到有一天突然有用户说,你们的网站怎么显示的红色警告图标。这时候才开始排查问题,那么首先应该检查的就是证书是否过了有效期,如果过了有效期,证书应该及时续费或者使用其他证书,最好是在证书快要过期前的一两周续费,以免影响网站后续的使用。如果证书被吊销,也会显示日期过期,这种要立刻联系证书提供商,查找吊销原因,及时解决。

原因三:证书的不完整

在申请证书的时候,经常会由于用户的疏忽或者是第一次申请,不是很懂,导致没有完全看懂申请规则,这样在申请时候就会导致域名匹配不正确,比如填写CSR的时候定义了anxinssl.com这个顶级域名,但是并没有定义https://www.anxinssl.com这个二级域名,这个时候就会提示,证书非该域名信任证书。

原因四:户端不支持SNI协议

一般这种情况发生在Windows XP系统中,安卓4.2以下版本也会发生这种情况,大多数原因是因为这些系统时代太久远了,目前使用的人数非常之少,也不建议大家使用。这些比较古老的系统中大多是不支持SNI(Server Name Indication,服务器名字指示)协议的,不过目前主流的 *** 作系统都是支持这个协议的,大家也不用太担心。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11409281.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存