
SSL(Secure Sockets Layer)是一种用于保护客户端和服务器之间通信的协议。在SSL协议中,认证是非常重要的一个过程,因为它能够确保所发送的信息只能被标识为接受者的一方所使用。单向认证和双向认证是两种不同的SSL认证方式,它们的基本差别在于是否需要客户端和服务器互相验证身份。本文将介绍SSL单向认证和双向认证的区别以及各自的优点和缺点。
SSL单向认证
SSL单向认证也被称为客户端认证,是一种较为基础的认证方式。在这种方式下,用户的浏览器向网站发出请求,而网站会发送一个证书给浏览器以验证身份。该证书通常由第三方机构颁发,并且包含了服务器的公钥和服务器的标识信息,如网站的域名或IP地址等。当浏览器收到证书时,它会验证证书的有效性,防止该证书被篡改或冒用。验证成功后,浏览器可以安全地与网站进行通信,因为浏览器和服务器之间的数据都是受到加密保护的。
SSL单向认证的优点是实现简单,对于大多数网站和应用来说,它所提供的安全性足以满足需求。缺点在于,只有服务器验证了客户端的身份,而客户端并没有验证服务器的身份。这就存在一定的风险,因为攻击者可以冒充真正的服务器,欺骗用户提交敏感信息。
SSL双向认证
SSL双向认证也被称为客户端和服务器认证,是一种更为安全的认证方式。在这种方式下,客户端和服务器会互相验证身份。客户端会发送一个证书给服务器以验证身份,而服务器也会向客户端发送一个证书以验证身份。这两个证书都需要经过第三方机构的颁发和认证,客户端和服务器都需要验证其有效性。
SSL双向认证的优点在于双方都验证了对方的身份,因此安全性更高。它特别适用于对安全性要求较高的机构和网站,如银行、电子商务和政府机构等。缺点在于实现难度较大,可能需要更多的技术支持和资源,而且客户端需要安装和配置证书,给用户带来了一定的不便。
结论
SSL单向认证和双向认证都有其优点和缺点。安全性高的网站或应用可以选择使用SSL双向认证,而一般的应用则可以使用SSL单向认证。无论使用哪种方式,都应该选择可靠的第三方机构颁发证书,保证证书的有效性和正确性。此外,SSL认证只是保证数据传输的安全性,对于网络攻击、数据泄露等其他安全威胁还需要采用其他措施进行保护。
互亿无线始终专注于为您提供全面的SSL证书解决方案,守护您的网站安全与信誉。我们为您提供多样性的SSL证书类型,包括DV(域名验证)、OV(组织验证)和EV(扩展验证)证书,满足您各式各样的安全需求。我们为您呈现多样化的证书类型,包含单域名、多域名和通配符证书。以便适应您的网站架构。我们与全球的证书品牌,包括Globalsign、DigiCert、Entrust、vTrus、Thawte等保持紧密合作,确保为您提供高品质的SSL证书。
![]() |
一站式SSL证书购买中心 |
![]() |
享受快速签发的SSL证书服务 |
![]() |
为您呈现高性价比的SSL证书价格方案 |
![]() |
提供全面的SSL证书服务 |
您可以在购买证书时合并签发OV型,也可以在购买证书实例后使用合并申请OV,EV型多通配符域名证书,混合域名证书。不支持DV型多通配符域名证书和混合域名证书的申请。
购买证书时,合并签发证书
在购买证书时,您可以使用合并签发的证书功能申请多通配合域名证书和混合域名证书。这样,您只能合并和申请OV类型的多通配合域名证书和混合域名证书。具体操作请参考SSL证书的购买。
如需申请EV证书,只能在购买证书实例后合并申请证书。
购买证书实例合并申请证书
您可以使用证书合并功能合并申请多通配符域名证书和混合域名证书。例如,您可以合并多个通配符域名证书的实例,申请多通配符域名证书;将通配符域名证书的实例与单个域名证书的实例合并,申请混合域名证书。
使用证书合并功能,需要满足以下条件:
提前购买相同品牌的OV或EV证书实例,证书实例的服务年限为1年。
证书实例处于待申请或审核失败状态。
我们知道证书链的概念,所以,通过服务器返回网站证书路径,我们通过终端证书-中间证书-根证书逐步验证,如果在信任证书列表中找到根证书可以签署证书链上的证书,证书是信任的。这很容易实现,因为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证书格式主要是公钥证书格式标准X.PEM和DER定义在509中、PKCS中定义PKCS#7和PKCS#12、Tomcat专用JKS。SSL证书的常见格式及转化方法如下:
常见的SSL证书格式
DER:DistinguishedencodingRules缩写,二进制编码的证书格式,相当于PEM格式的二进制版本,证书后缀有:.DER.CER.CRT,Java平台主要用于Java平台
PEM:PrivacyEnhancedMail的缩写,Base64编码的证书格式,是将Base64二进制版本编码后,以“—–BEGIN开头,“……”—–END结尾。证书的后缀有:.PEM.CER.CRT,主要用于Apache和Nginx。
PKCS#7:PKCS(Public-KeyCryptographyStandards)PKCS标准中的PKCS#7(CryptographicMessageSyntaxStandard)。它不包含私钥,单独存储证书链和用户证书。证书后缀如下:.P7B.P7C.SPC,主要用于Tomcat和Windowsserver。
PKCS#12:PKCS(Public-KeyCryptographyStandards)PKCS#12标准PKCS#(PersonalInformationExchangeSyntaxStandard)。它包含私钥、证书链、用户证书和密码。证书后缀有:.P12.PFX,主要用于Windowsserver。
JKS:JavaKeyStore缩写,包含私钥、证书链、用户证书,并设置密码。证书后缀为.jks。主要用于Tomcat。
SSL证书格式转换方法
Webtrust认证的CA机构颁发的证书通常只提供PEM格式或PKCS#7格式。如果需要其他证书格式,可以使用以下常用方法进行格式转换。
使用OpenSSL、Keytool转化
1.pem转换pfx
openssl pkcs12 -export -in 'test.pem' -inkey 'test.key' -out 'test.p12' -passout pass:123456
2.pem转换jks
openssl pkcs12 -export -in 'test.pem' -inkey 'test.key' -out 'test.p12' -passout pass:123456
keytool -importkeystore -srckeystore 'test.p12' -srcstoretype PKCS12 -destkeystore 'test.jks' -srcstorepass 123456 -deststorepass 123456
3.pfx转换pem
openssl pkcs12 -in test.p12 -passin pass:123456 -out test3.pem -nodes
4.pfx转换jks
keytool -importkeystore -srckeystore 'test.p12' -srcstoretype PKCS12 -destkeystore 'test.jks' -srcstorepass 123456 -deststorepass 123456
5.jks转换pem
keytool -importkeystore -srckeystore 'test.jks' -srcstoretype jks -destkeystore 'test.p12' -deststoretype PKCS12 -srcstorepass 123456 -deststorepass 123456
openssl pkcs12 -in test.p12 -passin pass:123456 -out test3.pem -nodes
6.jks转化pfx
keytool -importkeystore -srckeystore 'test.jks' -srcstoretype jks -destkeystore 'test.p12' -deststoretype PKCS12 -srcstorepass 123456 -deststorepass 123456SSL
在线咨询
150,000家
企业客户
21年
行业经验
2V1
2对1客户支持