1? ?服務(wù)器去下載免費(fèi)的證書(選在tomcat jks版本的)
?2? ?將下載的證書移動(dòng)到resources目錄下
?3 改寫yml配置文件? 9898 為https 對(duì)應(yīng)的端口 key-store中注釋的為你的域名 key-password為剛剛下載的第二個(gè)txt文件中的內(nèi)容 key-store-password和key-password是一樣的 key-alias 為你自己的域名
?4 在啟動(dòng)類中添加屬性和配置方法?
// http 請求端口,線上配置為 8080
@Value("${server.port-http}")
private int serverPortHttp;
// 服務(wù)器運(yùn)行端口,等同于 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監(jiān)聽的http的端口號(hào)
connector.setPort(serverPortHttp);
connector.setSecure(false);
//監(jiān)聽到http的端口號(hào)后轉(zhuǎn)向到的https的端口號(hào)
connector.setRedirectPort(serverPortHttps);
return connector;
}
5 編寫docker file
FROM openjdk:8
# 維護(hù)者
MAINTAINER cdy<2096883491@qq.com>
# copy jar包 命名為 aap.jar
COPY *.jar /app.jar
# 暴露端口
EXPOSE 9898
# 啟動(dòng) jar包 可通過 PARAM 配置啟動(dòng)參數(shù)
ENTRYPOINT ["java","-jar","/app.jar"]
6 用idea打包成jar包
7 用docker打包成鏡像
9 啟動(dòng)容器 jike:3.0為剛剛構(gòu)建的鏡像名稱?
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;
? ?#請?zhí)顚懡壎ㄗC書的域名
? ?server_name? ?youhostname;?
? ?#把http的域名請求轉(zhuǎn)成https
? ?return 301 https://$host$request_uri;?
}server {
?#SSL 默認(rèn)訪問端口號(hào)為 443
?listen 443 ssl;
?#請?zhí)顚懡壎ㄗC書的域名
?server_name youhostname;?
?#請?zhí)顚懽C書文件的相對(duì)路徑或絕對(duì)路徑
?ssl_certificate ?/etc/nginx/ssl/youhostname_bundle.crt;?
?#請?zhí)顚懰借€文件的相對(duì)路徑或絕對(duì)路徑
?ssl_certificate_key /etc/nginx/ssl/youhostname.key;?
?ssl_session_timeout 5m;
?#請按照以下套件配置,配置加密套件,寫法遵循 openssl 標(biāo)準(zhǔn)。
?ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
?#請按照以下協(xié)議配置
?ssl_protocols TLSv1.2 TLSv1.3;
?ssl_prefer_server_ciphers on;
?location / {
? ?#網(wǎng)站主頁路徑。此路徑僅供參考,具體請您按照實(shí)際目錄操作。?
? ?#例如,您的網(wǎng)站主頁在 Nginx 服務(wù)器的 /etc/www 目錄下,則請修改 root 后面的 html 為 /etc/www。
? ?root ? /usr/share/nginx/html/dist;
? ?try_files $uri $uri/ /index.html;
? ?index ?index.html index.htm;
?}? ?# 默認(rèn)所有路徑
? ?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/;
? ?}文章來源:http://www.zghlxwxcb.cn/news/detail-644949.html? ? ?error_page ? 500 502 503 504 ?/50x.html;
? ? ? ? location = /50x.html {
? ? ? ? ? ? root ? html;
? ? ? }
}
?? ?include /etc/nginx/conf.d/*.conf;
}文章來源地址http://www.zghlxwxcb.cn/news/detail-644949.html
11 前端在vue.config.js中可以修改為htpps:youhostnameL9898 微信小程序中也可以進(jìn)行修改,都是符合https的
到了這里,關(guān)于SpringBoot Tomcat 配置https 且443端口也是https(若依為例對(duì)接微信小程序的https,小程序也可以訪問)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!