日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

apache配置证书后 tomcat无法访问_给你的项目配置个https吧

發布時間:2024/4/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 apache配置证书后 tomcat无法访问_给你的项目配置个https吧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.申請證書

這里我選擇的是阿里云的個人免費的證書

因為使用的是內置的Tomcat,所以下載Tomcat類型的

2.配置項目

將證書XXXX.pfx文件放到項目的resources目錄,接著修改application.yml文件

server: port: 443 ssl: key-store: classpath:XXXX.pfx key-store-password: 證書密碼 keyStoreType: PKCS12

接著修改啟動類,添加如下內容,接著啟動項目

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.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;import org.springframework.context.annotation.Bean;import org.mybatis.spring.annotation.MapperScan;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplicationpublic class MxemApplication implements EmbeddedServletContainerCustomizer { //攔截所有請求 @Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() { @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; } //配置http轉https @Bean public Connector httpConnector() { Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL); connector.setScheme("http"); //Connector監聽的http的端口號 connector.setPort(80); connector.setSecure(false); //監聽到http的端口號后轉向到的https的端口號 connector.setRedirectPort(443); return connector; } //這里設置默認端口為443,即https的,如果這里不設置,會https和http爭奪80端口 @Override public void customize(ConfigurableEmbeddedServletContainer container) { container.setPort(443); }}

3.可能出現的問題

可能會出現下面的錯誤

Address already in use: bind

解決辦法

以windows系統為例,查看當前端口被哪個進程占用了(進入到CMD中)

netstat -ano|findstr "443"

然后找到進程ID,使用任務管理器結束此進程即可。

如果對你有幫助,還請點個贊,點個關注

總結

以上是生活随笔為你收集整理的apache配置证书后 tomcat无法访问_给你的项目配置个https吧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。