SpringBoot配置阿里雲https提示端口占用問題


1.因為要配置https,所以去網上找了一些資料,然后按照步驟,依次完成了以下步驟

①在application.yml中加入配置

http:
port: 12000 #原本的端口號
server:
port: 443
ssl:
key-store: classpath:key.pfx #阿里雲的證書,放到resources目錄下,引用
key-store-password: FvDFDNtDDD9 #阿里雲連同證書一塊下載下來的密碼
keyStoreType: PKCS12



②在啟動項添加如下配置
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(redirectConnector());
return tomcat;
}

private Connector redirectConnector() {
Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
connector.setScheme("http");
connector.setPort(12000);
connector.setSecure(false);
connector.setRedirectPort(443);
return connector;
}



③隨后啟動
問題就在這,我看別人都是直接啟動成功了,我這邊就老是報443端口占用,哪怕我換成其他的端口,也是瘋狂的報新端口被占用,然后開始了我的找答案過程

解決方案一:找到占用端口的進程,先執行netstat -aon | findstr "443",然后看看有沒有被占用,找到了的話再根據pid找到占用的進程是什么(tasklist | findstr "8144"),關閉這個進程即可.

我試了第一種方案,對我這邊無效,於是繼續自己摸索

然后,然后我就發現我的那個阿里雲文件名有點長,還帶下划線那種,我就想,會不會是因為解析沖突了,類似於文件not found那種,抱着試試的心態,
我把文件名改成了一個簡單的,如下,圖一是原來的下載下來的文件名,老是報端口占用

 

 

然后圖二是我改了文件名之后的,注意這里,雖然大佬應該都知道,但是如果已經到了懷疑人生的地步,可能腦子會懵

先把resources下你從阿里雲下載下來的文件改成一個簡單的英文字母的文件,例如我就直接命名為:key

 

 然后再改application.yml的配置,改成對應的名字

 

 然后再嘗試啟動,運氣好的話,你就會像我一樣,成功啟動了,那么,祝你好運!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM