• Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot


    https://blog.csdn.net/gary_yan/article/details/77981303

    Https系列会在下面几篇文章中分别作介绍:

    一:https的简单介绍及SSL证书的生成 
    二:https的SSL证书在服务器端的部署,基于tomcat,spring boot 
    三:让服务器同时支持http、https,基于spring boot 
    四:https的SSL证书在Android端基于okhttp,Retrofit的使用

    所有文章会优先在: 
    微信公众号“颜家大少”中发布 
    之后才发布到下面博客中: 
    颜家大少的博客 :http://blog.csdn.net/gary_yan 
    转载请标明出处


    一:本文的主要内容介绍

    CA证书的下载及相应文件的介绍 
    CA证书在tomcat的部署 
    CA证书在spring boot的部署 
    自签名证书的部署

    二:一些内容的回顾

    “Https系列之一:https的简单介绍及SSL证书的生成” 中已介绍的自签名证书和CA证书的生成 
    其中有提到一个重要文件:keystore文件 
    回顾一下keystore是干什么的: 
    keystore可理解为一个数据库,可以存很多个组数据。 
    每组数据主要包含下面两种数据: 
    a:密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 
    b:可信任的证书实体(trusted certificate entries)——只包含公钥 
    那我们现在要做的就是把keystore文件部署到服务器中就OK了

    三:下面我们先说CA证书在服务器端的部署

    1:证书的下载

    在阿里云生成的针对tomcat服务器CA证书在申请成功后, 
    只要如下图,选“下载”->”tomcat”->”下载证书for Tomcat” 
    这里写图片描述
    这里写图片描述
    就能下载相应的tomcat证书文件。 
    顺便补充一下,在上图中,除了Tomcat外,还可以针对其它的服务器下相应的证书, 
    如:Nginx,Apache,IIS等,有需要的请自行研究。 
    下载的文件如下: 
    这里写图片描述

    2:已下载证书各文件的介绍:

    1): *.pfx为keystore文件,服务器用的就是这个文件 
    2): pfx-password.txt里包含有keystore所用到的密码 
    3): *.key里面包含的是私钥,暂时没用到此文件 
    4): *.pem里面包含的是公钥,主要给客户端

    3:针对Tomcat服务器的部署

    上图中的”下载证书for Tomcat”那个页面有对Tomcat服务器的详细配置 
    如下: 
    1):在Tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中

    2):找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到

    keystoreFile="cert/*.pfx"
    keystoreType="PKCS12"
    #此处的证书密码,请参考pfx-password.txt中的密码
    keystorePass="证书密码"
    • 1
    • 2
    • 3
    • 4

    完整的配置如下,其中port属性根据实际情况修改:

    <Connector port="443"
        protocol="HTTP/1.1"
        SSLEnabled="true"
        scheme="https"
        secure="true"
        keystoreFile="cert/*.pfx"
        keystoreType="PKCS12"
        keystorePass="证书密码"
        clientAuth="false"
        SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
        ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4:针对spring boot的部署

    spring boot因为是内嵌了tomcat的,理论上对tomcat的配置是一样的 
    只不过spring boot有更简单的配置方法 
    1): 把*.pfx copy到工程相应的resources下面

    2):修改resourcesapplication.properties,增加如下属性

    server.port=443
    server.ssl.key-store=classpath:*.pfx
    server.ssl.key-store-password=证书密码
    server.ssl.keyStoreType=PKCS12
    • 1
    • 2
    • 3
    • 4

    四:自签名证书在服务器的配置

    其实自签名证书的配置和CA证书的配置一样 
    只不过: 
    1:把*.pfx换成你之前生成的keystore.p12 
    2:把密码换成你之前生成keystore所用的密码,如在上一节中设置的:123456

    五:运行服务器测试https

    spring boot环境下,除了增加上面的配置外,并不需要增加任何一句代码。 
    好吧,重要的时刻来了,运行服务器,输入https网址 
    CA证书的如下图,开心吧,你喜欢的绿色的安全标志 :P : 
    这里写图片描述

    自签证书的如下图,显示不安全呵,但可点“高级”->”继续访问“去访问: 
    这里写图片描述
    更多内容请看:Https系列之三:让服务器同时支持http、https,基于spring boot

  • 相关阅读:
    transient关键字详解
    大话设计模式之装饰模式
    springboot读取properties(yml)的几种常用方式
    springboot整合druid数据库连接池并开启监控
    初学js的穷举思想
    循环语句
    条件分支语句
    运算符
    案例(-)
    seo搜索引擎优化
  • 原文地址:https://www.cnblogs.com/yaowen/p/9235888.html
Copyright © 2020-2023  润新知