跳至主要內容

小程序服务器域名配置

sixkey大约 2 分钟后端小程序服务器域名配置实战

小程序服务器域名配置

1、为什么要配置服务区域名呢?

(1)这是因为我们要上线小程序时,微信官方要求要配置一个已备案过的域名,并且请求url必须是https开头的,如:https://baidu.com ,因为https是安全的,这是小程序官方要求的。

(2)小程序端的所有后台数据都是通过https请求的,如果不配置就会出现小程序上线了但是后台数据请求不到的情况。

2、那么如何配置呢?

前提条件

  • 备案过的一个域名
  • 获取服务器上的免费ssl证书,这里以tomcat证书为例
  • 域名绑定ssl证书

3、开始配置

步骤1

下载并解压tomcat证书,解压后会有两个文件如下

步骤2

配置springboot后端代码中,将jks类型的文件放到项目目录resources下

yml文件中配置ssl

server:
  port: 8600
  ssl:
    key-store: classpath:six.top.jks
    key-store-type: JKS
    key-store-password: 65729xxxx
#    key-password: 配置这个tomcat回去启动报错

做完以上两个步骤后就说明你的域名已经绑定了ssl证书了,可以发起安全的https请求了

原本项目请求地址为http://www.swxlife.top:8600 , 现在可以通过https://www.swxlife.top:8600去请求了

步骤3

最后一步将配置好的这个请求地址配置到小程序管理后台的服务器域名配置即可

最后小程序上线后就可以正常访问后台数据咯

不过在通过开发者工具上传代码到小程序后台时记得把项目配置详情中的不合法校验域名的那个选项别勾上

4、扩展

我们上面说到yml文件中配置ssl,这种有个限制就是你的https请求只能转发到8600端口,那如果我们想通过其他端口访问到8600端口怎么办呢,只需要添加一个tomcat配置类进行重定向即可

package com.sixkey.config.tomcatconfig;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * ClassName: TomcatConfig
 * Package: com.sixkey.config.tomcatconfig
 * Description:
 *
 * @Author: @weixueshi
 * @Create: 2023/10/30 - 13:15
 * @Version: v1.0
 */
@Configuration
public class TomcatConfig {

    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection securityCollection = new SecurityCollection();
                securityCollection.addPattern("/*");
                securityConstraint.addCollection(securityCollection);
                context.addConstraint(securityConstraint);
            }
        };
        factory.addAdditionalTomcatConnectors(httpConnector());
        return factory;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(80); //设置80端口
        connector.setSecure(false);
        connector.setRedirectPort(8600); //当有请求访问80端口时就会被重定向到8600端口
        return connector;
    }
}

到此我们的小程序服务器域名配置就结束了