1   服务器去下载免费的证书(选在tomcat jks版本的)

 2   将下载的证书移动到resources目录下

 3 改写yml配置文件  9898 为https 对应的端口 key-store中注释的为你的域名 key-password为刚刚下载的第二个txt文件中的内容 key-store-password和key-password是一样的 key-alias 为你自己的域名

 4 在启动类中添加属性和配置方法 

 // http 请求端口,线上配置为 8080
    @Value("${server.port-http}")
    private int serverPortHttp;

    // 服务器运行端口,等同于 HTTPS 请求端口,线上 9898
    @Value("${server.port}")
    private int serverPortHttps;

    /**
     * http重定向到https
     */
    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat;
        tomcat = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector(Http11NioProtocol.class.getName());
        connector.setScheme("http");
        //Connector监听的http的端口号
        connector.setPort(serverPortHttp);
        connector.setSecure(false);
        //监听到http的端口号后转向到的https的端口号
        connector.setRedirectPort(serverPortHttps);
        return connector;
    }

5 编写docker file

FROM openjdk:8
# 维护者
MAINTAINER cdy<2096883491@qq.com>
# copy jar包 命名为 aap.jar
COPY *.jar /app.jar
# 暴露端口
EXPOSE 9898
# 启动 jar包 可通过 PARAM 配置启动参数
ENTRYPOINT ["java","-jar","/app.jar"]

6 用idea打包成jar包

7 用docker打包成镜像

9 启动容器 jike:3.0为刚刚构建的镜像名称 

10 nginx中做好配置

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
   listen 80;
   #请填写绑定证书的域名
   server_name   youhostname; 
   #把http的域名请求转成https
   return 301 https://$host$request_uri; 
}

server {
 #SSL 默认访问端口号为 443
 listen 443 ssl;
 #请填写绑定证书的域名
 server_name youhostname; 
 #请填写证书文件的相对路径或绝对路径
 ssl_certificate  /etc/nginx/ssl/youhostname_bundle.crt; 
 #请填写私钥文件的相对路径或绝对路径
 ssl_certificate_key /etc/nginx/ssl/youhostname.key; 
 ssl_session_timeout 5m;
 #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 #请按照以下协议配置
 ssl_protocols TLSv1.2 TLSv1.3;
 ssl_prefer_server_ciphers on;
 location / {
   #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 
   #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
   root   /usr/share/nginx/html/dist;
   try_files $uri $uri/ /index.html;
   index  index.html index.htm;
 }

   # 默认所有路径
   location /prod-api/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE_HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-NginX-Proxy true;            
    # 反向代理配置
     proxy_pass https://youhostname:9898/;
   }

     error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
      }
}
    include /etc/nginx/conf.d/*.conf;
}

11 前端在vue.config.js中可以修改为htpps:youhostnameL9898 微信小程序中也可以进行修改,都是符合https的

Logo

快速构建 Web 应用程序

更多推荐