ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于mkcert工具实现Spring Boot 项目服务通过Https方式访问

2022-06-08 16:32:42  阅读:184  来源: 互联网

标签:Connector Spring Boot securityConstraint connector mkcert key new


mkcert(Windows环境)

1.下载地址:https://github.com/FiloSottile/mkcert/releases

2.选择版本

3.以管理员身份运行`命令提示符

1) cd C:/ #进入工具存放的目录下
2) mkcert-v1.4.4-windows-amd64.exe -install #命令进行安装
3) mkcert-v1.4.3-windows-amd64.exe #查询是否安装成功
4) mkcert-v1.4.3-windows-amd64.exe -pkcs12 [本地ip] #为本地ip创建p12证书,生成的证书在当前目录

Spring Boot项目配置证书

1.将p12证书存放在项目resources目录下

2.在pom.xml文件中增加配置

<resource>
    <directory>src/main/webapp</directory>
    <targetPath>META-INF/resources</targetPath>
    <includes>
        <include>**/*.*</include> <!--将resources下所有目录文件都打包target文件夹中 -->
    </includes>
    <filtering>true</filtering>
</resource>

3.配置application.yml

server:
  port: 9002
  ssl:
    key-store: classpath:172.20.10.4.p12
    key-password: changeit # mkcert工具生成时默认密码
    key-store-password: changeit # mkcert工具生成时默认密码
    key-store-type: PKCS12

4.在启动类中增加如下代码

@Bean
public ServletWebServerFactory servletContainer() {

    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {

        @Override
        protected void postProcessContext(Context context) {

            SecurityConstraint securityConstraint = new SecurityConstraint();
            securityConstraint.setUserConstraint("CONFIDENTIAL");
            SecurityCollection collection = new SecurityCollection();
            collection.addPattern("/*");
            securityConstraint.addCollection(collection);
            context.addConstraint(securityConstraint);
        }
    };
    tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
    return tomcat;
}

/**
     * 让我们的应用支持HTTP是个好想法,但是需要重定向到HTTPS,
     * 但是不能同时在application.yml中同时配置两个connector,
     * 所以要以编程的方式配置HTTP connector,然后重定向到HTTPS connector
     * @return Connector
     */
private Connector initiateHttpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(80); // http端口
    connector.setSecure(false);
    connector.setRedirectPort(9002); // application.yml中配置的https端口
    return connector;
}

配置至此结束

启动项目访问地址为:https://ip:port/

或者使用: http://ip:80自动会跳转上条地址

*带上小锁是不是很有安全感呢~~~~*

感谢阅读!

标签:Connector,Spring,Boot,securityConstraint,connector,mkcert,key,new
来源: https://www.cnblogs.com/zklymm/p/16356119.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有