美文网首页Docker
自建CA证书,使用docker部署java程序支持https双向

自建CA证书,使用docker部署java程序支持https双向

作者: 曼昱的小蓝毛巾 | 来源:发表于2021-02-09 10:19 被阅读0次

    1、证书准备

    1.1 自建证书

    win下创建CA证书,请查阅win系统下基于springboot实现https的双向认证的相关内容噢。
    Linux下创建CA证书,请查阅Linux系统下基于springboot实现https的双向认证的相关内容噢。

    1.2 相关文件

    图1

    2、docker部署

    2.1 环境准备

    服务器信息如下:
    操作系统 ip 说明
    Centos 7 192.168.0.202 作为服务端

    浏览器采用chrome。

    2.2 操作步骤

    2.2.1 Dockerfile文件
    1、将【sslTestClient.cer】、【sslTestServer.cer】文件上传至服务器某目录下
    图2
    2、创建Dockerfile文件
    FROM java:8
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    VOLUME /tmp
    COPY ./sslTestClient.cer /tmp/
    COPY ./sslTestServer.cer /tmp/
    RUN \
        cd $JAVA_HOME/jre/lib/security \
        && sh -c '/bin/echo -e "y" | keytool -import -alias sslTestClient -file /tmp/sslTestClient.cer -keystore $JAVA_HOME/jre/lib/security/cacerts --storepass changeit -v'
    RUN \
        cd $JAVA_HOME/jre/lib/security \
        && sh -c '/bin/echo -e "y" | keytool -import -alias sslTestServer -file /tmp/sslTestServer.cer -keystore $JAVA_HOME/jre/lib/security/cacerts --storepass changeit -v'
    ADD STSONG.TTF /usr/share/fonts/STSONG.TTF
    ADD test-1.0.0.jar app.jar
    RUN bash -c 'touch /app.jar'
    EXPOSE 8000
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    
    部分命令解释:
      //  将服务器路径下的【*.cer】文件copy至docker容器内部
      COPY ./sslTestClient.cer /tmp/
     
      // 将客户端/服务端公钥导入的服务端/客户端jdk信任库
      RUN \
        cd $JAVA_HOME/jre/lib/security \
        && sh -c '/bin/echo -e "y" | keytool -import -alias sslTestClient -file /tmp/sslTestClient.cer -keystore $JAVA_HOME/jre/lib/security/cacerts --storepass changeit -v'
    
        // 相当于输入y命令:是否信任此证书,输入y 
        sh -c '/bin/echo -e "y"
    
      // 相当于输入密码,默认密码:changeit
        --storepass changeit
    
    2.2.2 build
    docker build -t test/ca:1.0 .
    

    3、测试

    3.1 浏览器输入url:

    图3

    3.2 Postman测试

    3.2.1 未添加证书时请求:
    图4
    3.2.2 添加证书后请求:
    图5
    图6

    使用postman添加客户端证书后,可正常访问数据:


    图7

    至此,使用docker部署java程序支持https双向认证实现完毕。
    java代码实现https请求,请参考自建CA证书,java实现通过OkHttpClient发送https(验证ca证书)请求

    相关文章

      网友评论

        本文标题:自建CA证书,使用docker部署java程序支持https双向

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