美文网首页
tomcat添加https访问支持

tomcat添加https访问支持

作者: 海阔天空yqh | 来源:发表于2018-06-22 14:23 被阅读0次

    最近研究了下https,https需要相关证书;可以利用jdk自带的工具自己生成证书,也可以向专门机构申请证书。

    区别好像就是用浏览器访问https的网站时,自己生成的证书不会被浏览器信任,在浏览器左上角地址栏“https://”有个红色的斜杠;专门机构申请的证书没有。我暂时还没发现其它的区别。

    2017年后苹果强制使用https,这时证书需要到专门机构(如startssl、沃通CA等)上申请,不能自己生成,因为自己生成的证书不会被苹果信任。

    下面看下如何自己生成证书。

    一、为服务器生成证书

    [html] view plain copy

    keytool -genkey -v -alias tomcat -keyalg RSA -keystore /Users/medchitectec/Desktop/cer/tomcat.keystore -validity 36500  

    “tomcat”是别名

    “/Users/medchitectec/Desktop/cer/tomcat.keystore ”是生成的证书的存放路径

    "36500"是证书的有效期,单位是”天“

    二、为客户端生成证书

    [html] view plain copy

    keytool -genkey -v -alias tomcat -keyalg RSA -storetype PKCS12 -keystore /Users/medchitectec/Desktop/cer/client.key.p12 -validity 36500  

    “tomcat”是别名,最好和服务端证书一样

    “/Users/medchitectec/Desktop/cer/client.key.p12 ”是生成的证书的存放路径

    "36500"是证书的有效期,单位是”天“

    三、让服务器信任客户端证书

    1、将客户端证书导出为CER文件

    [html] view plain copy

    keytool -export -alias tomcat -keystore /Users/medchitectec/Desktop/cer/client.key.p12 -storetype PKCS12 -storepass 88888 -rfc -file /Users/medchitectec/Desktop/cer/client.key.cer  

    tomcat”是别名

    “/Users/medchitectec/Desktop/cer/client.key.p12 ”是客户端证书的存放路径

    ”88888“是客户端证书密码(生成证书时会提示输入)

    “/Users/medchitectec/Desktop/cer/client.key.cer ”是生成的 cer文件的存放路径

    2、将CER文件导入到服务器的证书库

    [html] view plain copy

    keytool -import -v -file /Users/medchitectec/Desktop/cer/client.key.cer -keystore /Users/medchitectec/Desktop/cer/tomcat.keystore  

    “/Users/medchitectec/Desktop/cer/client.key.cer ”上面一步生成的cer文件的存放路径

    “ /Users/medchitectec/Desktop/cer/tomcat.keystore ”服务器证书的存放路径

    3、检查安装结果

    [html] view plain copy

    keytool -list -keystore /Users/medchitectec/Desktop/cer/tomcat.keystore  

    “ /Users/medchitectec/Desktop/cer/tomcat.keystore ”服务器证书的存放路径

    四、让客户端信任服务器证书

    1、把服务器证书导出为CER文件

    [html] view plain copy

    keytool -keystore /Users/medchitectec/Desktop/cer/tomcat.keystore -export -alias tomcat -file /Users/medchitectec/Desktop/cer/tomcat.cer  

    五、配置Tomcat服务器

    [html] view plain copy

    maxThreads="150" scheme="https" secure="true"    

    clientAuth="false" sslProtocol="TLS"    

    keystoreFile="D:\\tomcat.keystore" keystorePass="888888"    

    truststoreFile="D:\\tomcat.keystore" truststorePass="888888" />    

    clientAuth="false"表示浏览器客户端不需要“客户端证书”,可以直接访问

    clientAuth="true"表示访问必须要客户端证书,在浏览器中安装上面步骤生成的“客户端证书”即可

    六、tomcat同时支持http和https

    上线APP还需要支持老版本,老版本是http接口,那么这个时候需要同时支持http和https,配置如下

    在server.xml中:

    [html] view plain copy

    connectionTimeout="2000000"   

    redirectPort="8443"   

    />  

    maxThreads="15000" scheme="https" secure="true"  

    clientAuth="false" sslProtocol="TLS"   

    keystoreFile="D:\\tomcat.keystor" keystorePass="888888"    

    truststoreFile="D:\\tomcat.keystor" truststorePass="888888"/>  

    这样“8090”是http的端口,“8091”是https的接口

    相关文章

      网友评论

          本文标题:tomcat添加https访问支持

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