• Spring Boot demo系列(六):HTTPS


    2021.2.24 更新

    1 概述

    本文演示了如何给Spring Boot应用加上HTTPS的过程。

    2 证书

    虽然证书能自己生成,使用JDK自带的keytool即可,但是生产环境是不可能使用自己生成的证书的,因此这里使用的证书是购买过来的,具体流程就不说了,去云厂商处购买即可。

    3 配置文件

    新建一个Spring Boot工程,在配置文件添加如下参数:

    server.ssl.key-store=classpath:crt/xxx.pfx
    server.ssl.key-store-type=PKCS12
    server.ssl.key-store-password=xxxx
    

    具体配置需要结合云厂商的文档,笔者在阿里云上买的证书,下载的是Tomcat的版本,参照里面的帮助设置以上三个参数。

    在这里插入图片描述

    • server.ssl.key-store:证书文件的位置,为classpath:crt/xxx,其中classpath:表示使用resources下的路径,但是需要加上一个文件夹,比如,假设证书文件名为1.pfx,直接放在resources下的话,路径就是classpath:1.pfx,这样是访问不了的,但是加上目录后,也就是如果放在resources/crt下,路径就是classpath:crt/1.pfx,这样就可以访问了
    • server.ssl.key-store-typePKCS12,根据阿里云的Tomcat配置文档得出,具体的话根据自己的云厂商证书部署文档决定
    • server.ssl.key-store-password:证书下载后有两个文件,一个是证书,一个是pfx-password.txt,这里的密码就是pfx-password.txt的内容

    4 本地测试

    直接run即可,首先可以试一下用HTTP访问:

    http://localhost:8080
    

    在这里插入图片描述

    会提示需要使用HTTPS,改为HTTPS后:

    在这里插入图片描述

    这是因为笔者的证书绑定了域名的缘故,没有使用域名访问,修改本地host

    127.0.0.1 www.xxx.xxx
    

    这样使用域名访问就不会显示不安全了:

    在这里插入图片描述

    5 Docker部署

    打包,改名为demo.jar,上传到服务器。

    其他更详细的Docker部署操作请查看笔者之前的博客,戳这里

    这里给出Dockerfile

    FROM adoptopenjdk/openjdk11:aarch64-centos-jdk-11.0.8_10
    
    MAINTAINER test <test@qq.com>
    
    VOLUME /tmp
    
    EXPOSE 8080
    
    ADD demo.jar demo.jar
    
    ENTRYPOINT ["java","-jar","demo.jar"]
    

    创建镜像与容器并运行:

    docker build -t demo .
    docker run -d -p 8888:8080 demo
    

    测试:

    在这里插入图片描述

    6 源码

    Java版:

    Kotlin版:

  • 相关阅读:
    如何很好的使用Linq的Distinct方法
    根据字符串获取对应类型(Type) 转
    .Net 读取xml
    认识ASP.NET MVC的5种AuthorizationFilter
    使用admin插入数据失败
    乱序批量精确修改文件名
    多进程+协程方案处理高IO密集,提升爬取效率
    Linux 安装 CMake
    Ubuntu 截图工具deepin-screenshot添加使用
    Linux virtualenv .bashrc配置文件
  • 原文地址:https://www.cnblogs.com/6b7b5fc3/p/13690626.html
Copyright © 2020-2023  润新知