设置https服务器,分别在spring-cloud和tomcat中设置做http转发https

11 篇文章 0 订阅
7 篇文章 0 订阅

有一些服务器必须要采用https安全访问模式,比如小程序开发,所有需要将我们的服务器转成https的访问。步骤如下:

1.首先在域名下面申请免费的安全证书(  https://yq.aliyun.com/articles/221596  ),在证书的目录下使用命令行运行以下命令生成jks文件(java工程下需要):

keytool -importkeystore -srckeystore 215031325920305.pfx -destkeystore zpstore.jks -srcstoretype PKCS12 -deststoretype JKS

运行后,输入pfx和jks密码,让这两种密码设置成一样,也就是设置成跟原来同一个密码(省的后面添加多个密码)。215031325920305.pfx为安全证书下的pfx文件,zpstore.jks为自己设置的生成jks文件的名称。

2.在工程中将zpstore.jks保持在src/main/resources目录下。

3.在yml文件中设置:

server:
  port: 6206
  ssl:
    key-store: classpath:zpstore.jks
    key-password: 215031325920305

4.在浏览器中访问https://localhost:6206/mainbody/list即可

5. 在spring-cloud中http登录跳转https方法,两种方法:

第一种:新建一个文件:加入如下代码即可实现跳转(优先):

@Configuration
public class HttpToHttps {
    @Bean
    public Connector connector(){
        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(80);
        connector.setSecure(false);
        connector.setRedirectPort(443);
        return connector;
    }

    @Bean
       public EmbeddedServletContainerFactory servletContainerFactory(){
          TomcatEmbeddedServletContainerFactory containerFactory = new TomcatEmbeddedServletContainerFactory(){

             @Override
             protected void postProcessContext(Context context) {
                super.postProcessContext(context);
                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
             }
          };
          containerFactory.addAdditionalTomcatConnectors(connector());
          return containerFactory;
       }
}

 

第二种:加入有色代码即可实现跳转:

public class ApiGatewayApplication {
    
    public static void main( String[] args ) {
        new SpringApplicationBuilder(ApiGatewayApplication.class).web(true).run(args);
    }

    
    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
      TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
      tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
      return tomcat;
    }


    // 配置http,这里如果https用的是443,http用80的话,则输入http直接跳转到https,不需要加端口号。因为都是默认的,8008跳转到8606,可设置80的http跳转到https的443端口。
    private Connector createStandardConnector() {
      Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
      connector.setPort(8008);
        connector.setSecure(false);
        // 监听到http的端口号后转向到的https的端口号
        connector.setRedirectPort(8606);
      return connector;
    }
   

}

6、在tomcat中设置做http转发https,在修改web.xml文件配置,在<web-app>标签内最下方,添加如下代码,即与<welcome-file-list>同一级的下方:

<security-constraint>
        <web-resource-collection>
            <web-resource-name>SSL</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunzai6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值