我们知道证书链的概念,所以,通过服务器返回网站证书路径,我们通过终端证书-中间证书-根证书逐步验证,如果在信任证书列表中找到根证书可以签署证书链上的证书,证书是信任的。这很容易实现,因为JavaJDK帮助我们实现了必要的验证逻辑,并且对客户端是透明的,使用默认的TrustManager:
SSLContextcontext=SSLContext.getInstance("TLS");
///Trustmanager传null将使用系统默认的“SunX509”TrustManager
context.init(null,null,null);
URLurl=newURL("https://www.baidu.com");
HttpsURLConnectionconnection=(HttpsURLConnection)url.openConnection();
connection.setSSLSocketFactory(context.getSocketFactory());
InputStreamis=connection.getInputStream();
当SSLContextinit方法的第二个参数传输到null时,Trustmanager将使用默认的Sunx509实现,代码如下:
TrustManagerFactorymgr=TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
mgr.init((KeyStore)null);
TrustManager[]var2=var4.getTrustMan·agers();
当然,功能也可以在TrustManager上扩展,但除非场景极其特殊,否则一般不建议做。上述验证方法在Android系统中基本相似。在启动REST接口访问时,可以根据场景使用不同的验证方法。那么,当网站嵌入网站时,如何保证访问的安全呢?以下是网站的一些方法:
当webview加载页面时,将对证书进行验证。当验证错误时,将回调该方法。Ssleror对象将传递证书。您可以在这里进行自定义验证。自定义验证逻辑可以对传入的证书进行任何自定义验证。同时,通过以上分析,可以看出,要求的安全取决于客户端和服务器之间的许多合同。同时,客户端对证书的验证是整个保证的基础。
v
提供高性价比的SSL证书购买方案
证书等级 | DV(域名级)SSL证书 | OV(企业级)SSL证书 |
适用场景 | 个人网站、企业测试 | 中小企业的网站、App、小程序等 |
验证级别 | 验证域名所有权 | 验证企业/组织真实性和域名所有权 |
HTTPS数据加密 | ||
浏览器挂锁 | ||
搜索排名提升 | ||
单域名证书 |
¥ 150 /年 (促销)
|
¥ 820 /年 (促销)
|
通配符证书 |
¥ 680 /年 (促销)
|
¥ 2100 /年 (促销)
|
验证码已发送到您的手机,请查收!
输入验证码后,点击“开通体验账户”按钮可立即开通体验账户。