美文网首页后端开发其他Net
HTTPS如何使用自签证书和第三方CA证书配置服务器

HTTPS如何使用自签证书和第三方CA证书配置服务器

作者: 我真的真的是文艺青年 | 来源:发表于2016-01-14 11:38 被阅读12492次

    关于HTTPS的加密过程以及原理我在上一篇《HTTPS借口加密和身份认证》中写了。


    1.HTTPS自签CA证书及服务器配置

    1.1单项认证--服务器配置


    生成服务器证书

    自签证书

    A、输入keystore密码:此处需要输入大于6个字符的字符串。

    B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP(就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。

    C、你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息。

    D、输入的密钥口令,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以,完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件。

    接下来利用server.jks来签发证书

    C:\Users\bwkt>keytool -export -aliasserver -file server.cer -keystore server.jks

    根证书签发证书

    配置Tomcat

    找到tomcat/conf/sever.xml文件,并以文本形式打开。

    找到端口为8443的标签,修改为:

    disableUploadTimeout="true"  enableLookups="true"

    keystoreFile="C:\Users\bwkt\server.jks"  keystorePass="123456"

    maxSpareThreads="75"

    maxThreads="200"  minSpareThreads="5" port="8443"

    protocol="org.apache.coyote.http11.Http11NioProtocol"  scheme="https"

    secure="true"  sslProtocol="TLS"

    />

    注:keystoreFile:jks文件存放路径,keystorePass:生成证书时候的密码

    测试:启动Tomcat服务器,在浏览器中输入https://localhost:8443/,浏览器提示下图即为成功。

    配置成功

    1.2双向认证--服务器配置

    生成客户端证书

    按照生成证书的方式,再生成一对这样的文件,我们命名为:client.jks,client.cer。

    将client.cer添加到client_for_server.jks文件中

    配置服务器:将端口为8443的标签,修改为:

    disableUploadTimeout="true"  enableLookups="true"

    keystoreFile="C:\Users\bwkt\server.jks"  keystorePass="123456"

    truststoreFile="C:\Users\bwkt\client_for_server.jks"  truststorePass="123456"

    maxSpareThreads="75"

    maxThreads="200"  minSpareThreads="5" port="8443"

    protocol="org.apache.coyote.http11.Http11NioProtocol"  scheme="https"

    secure="true"  sslProtocol="TLS"

    />

    注:truststoreFile:信任证书的文件路径,truststorePass:信任证书的秘密

    测试:启动Tomcat服务器,在浏览器中输入https://localhost:8443/,浏览器提示下图即为成功。

    配置成功

    1.3  导出P12证书

    上篇文章我们知道服务器认证客户端需要在客户端导入P12证书,那么如何用根证书颁发P12证书呢。

    windows电脑可以使用Portecle来转:

    windows转换p12证书

    2.使用第三方服务器数字证书

    第三方的CA证书,我们需要做的就是提交材料购买一个服务器根证书,具体流程如下:

    1.首先需要给第三方机构提供服务器的IP地址(注意:服务器证书绑定的IP地址,证书只能用来验证服务器)。

    2.这里我们要求第三方机构给我们提供一个.pfx格式的证书。

    3.我们拿到pfx格式的证书将其转换为jks格式的证书(使用Portecle转换)如下图所示:

    证书转换

    4.拿到jks格式的证书后,我们用到服务器配置Tomcat,找到tomcat/conf/sever.xml文件,并以文本形式打开,找到端口为8443的标签,修改为:

    配置服务器

    注:keystoreFile:jks文件存放路径,keystorePass:生成证书时候的密码

    5.完成以上操作是服务器证书配置后,启动Tomecat服务器,可到浏览器中输入https://115.28.233.131:8443,显示如下则表示成功(和12306的效果是一样的):

    验证成功

    注意:如果要做支付网关证书、服务器客户端相互认证的话,还需要身份认证网关,这个网关需要购买设备,有G2000和G3000,G2000是1U设备,G3000是3U设备,价格可能在20到30万。购买网关之后第三方机构给我们提供证书,有服务器证书和移动端证书(可以是多个移动端),这些证书要通过他们的网关,给到我们手里的可以是jks格式证书。

    相关文章

      网友评论

      • 许漠颜:不是太懂,我现在生成了客户端和服务端使用的证书key,以及自建的ca证书。这些证书怎么使用还是不懂,请赐教。
        ForestL:@许漠颜 我现在是后台给了证书,我配置证书后访问不到服务器,CFNetwork SSLHandshake failed (-9806)
        许漠颜:@AZW 解决了,你可以看我写的那篇。
        ForestL:@许漠颜 你好,请问你的问题解决了吗?我也遇到类似问题,要用证书来访问接口获取数据

      本文标题:HTTPS如何使用自签证书和第三方CA证书配置服务器

      本文链接:https://www.haomeiwen.com/subject/fjackttx.html