服务器端通过根CA给客户端颁发客户端证书,在制作客户端证书时加上和机器相关的信息就可以保证在特定的时候某个帐号只能在这台机器上和服务器交换报文,比如我们用支付宝时必须下载安装数字证书时,可以命名这本证书叫"某某的笔记本"或者是"公司电脑"之类的,就是支付宝给用户颁发证书,只能在这台机
器上用,你换了机器就必须重新申请。建立SSL连接时,先是服务器将自己的服务器证书发给客户端,验证通过后,客户端就把自己的客户端证书发给服务器进行
验证,如果通过,再进行后面的处理。
客户端安装服务器根证书ca.crt到客户端信任证书库中,服务器端安装服务器根证书ca.crt到服务器信任证书库中。
SSL握手时,服务器先将服务器证书server.p12发给客户端,客户端会到客户端信任证书库中进行验证,因为server.p12是根证书CA颁发的,所以验证通过;然后客户端将客户端证书client.p12发给服务器,同理因为client.p12是根证书CA颁发的,所以验证通过。
双向认证 访问的PC也需要相应的数字证书的哦,查看下2张证书是否正确。还有就死证书的配置有无问题,文档有时候也分什么系统什么环境的。
https是基于ssl的。
https支持单向认证和双向认证。
对浏览器的要求就是要支持SSL V3.0/TLS V1.0及以上,但现在几乎所有浏览器都支持,如IE、Firefox、Opera等。
单向认证不需要客户证书,双向认证需要客户证书,这个是可以在服务器端配置的。
OK?
现在一般的银行是属于单向的。双向的,要求有自己的客户端证书。单向只要服务器端的证书。
客户端不用设置
在服务端配置文件中加监听的IP和端口就行了
HTTPS无法这样设置了,说明是URL也被加密了,不可能把多个证书都试一遍来确定是哪个域名,效率太低.
string dir = basename(fullPath);
if(!_fileUtils->isDirectoryExist(dir)) {
if(!_fileUtils->createDirectory(dir)) {
// Failed to create directory
CCLOG("AssetsManagerEx : can not create directory %s
", fullPath.c_str());
unzClose(zipfile);
return false;
}
首先
create a custom class .apache.eptedIssuers() {
return null;
}
};
sslContext.init(null, new TrustManager[] { tm }, null);
}
@Override
public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException {
return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
}
@Override
public Socket createSocket() throws IOException {
return sslContext.getSocketFactory().createSocket();
}
}
然后
Java code?
//SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
SSLSocketFactory socketFactory = new MySSLSocketFactory(trustStore);
socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Scheme sch = new Scheme("https", socketFactory, 8443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
...
服务器认证客户端:
服务器端通过根CA给客户端颁发客户端证书,在制作客户端证书时加上和机器相关的信息就可以保证在特定的时候某个帐号只能在这台机器上和服务器交换报文,比如我们用支付宝时必须下载安装数字证书时,可以命名这本证书叫"某某的笔记本"或者是"公司电脑"之类的,就是支付宝给用户颁发证书,只能在这台机
器上用,你换了机器就必须重新申请。建立SSL连接时,先是服务器将自己的服务器证书发给客户端,验证通过后,客户端就把自己的客户端证书发给服务器进行
验证,如果通过,再进行后面的处理。
客户端安装服务器根证书ca.crt到客户端信任证书库中,服务器端安装服务器根证书ca.crt到服务器信任证书库中。
SSL握手时,服务器先将服务器证书server.p12发给客户端,客户端会到客户端信任证书库中进行验证,因为server.p12是根证书CA颁发的,所以验证通过;然后客户端将客户端证书client.p12发给服务器,同理因为client.p12是根证书CA颁发的,所以验证通过。