springboot使用https

1、獲得https的證書。

途徑:
1、自己使用openssl生成自簽證書。
2、到freessl網(wǎng)站可以免費(fèi)申請(qǐng)90天到期證書。
https://freessl.org/#
步驟:
填入自己的域名

圖片.png

選擇日期
圖片.png

自動(dòng)生成CSR
圖片.png

選擇免費(fèi)
圖片.png

使用DNS驗(yàn)證
圖片.png

域名沒問題DNS驗(yàn)證會(huì)給你一個(gè),域名以及key,key-value。

來到云服務(wù)器控制臺(tái)選擇域名選項(xiàng),如阿里云
首先來到域名解析


圖片.png

添加記錄


圖片.png

修改記錄選CNAME
主機(jī)記錄填入key
解析線路選擇境外

記錄值key-value


圖片.png

然后點(diǎn)擊verify domain,完成驗(yàn)證,因?yàn)槭峭饩W(wǎng)驗(yàn)證的時(shí)候翻一下,否則會(huì)驗(yàn)證失敗。
圖片.png

點(diǎn)擊下載證書
圖片.png

解壓后得到
圖片.png

3、到對(duì)應(yīng)云服務(wù)中進(jìn)行ssl證書申請(qǐng)。

2、不同服務(wù)器需要不同類型的證書文件。使用keyManager來生成

https://www.keymanager.org/
因?yàn)閟pringboot使用嵌入式的tomcat我們需要獲得tomcat對(duì)應(yīng)證書文件。我們下載好keymanager。
導(dǎo)入獲取的證書文件,全選所有進(jìn)行導(dǎo)入。

導(dǎo)入文件.png

圖片.png

點(diǎn)擊導(dǎo)出得到j(luò)ks后綴的文件,私鑰加密密碼隨便輸入一個(gè)。


圖片.png

最后得到j(luò)ks文件


圖片.png

3、對(duì)springboot進(jìn)行相關(guān)配置

把jks文件放入resource文件夾下
對(duì)application.yml進(jìn)行配置

server:
  port: 9100
  ssl:
    enabled: true
    key-store: classpath:***.jks
    key-store-type: JKS
    key-store-password: ***

在springboot啟動(dòng)類中配置自動(dòng)從http跳轉(zhuǎn)https

    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory 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("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        //Connector監(jiān)聽的http的默認(rèn)端口號(hào)
        connector.setPort(8080);
        connector.setSecure(false);
        //監(jiān)聽到http的端口號(hào)后轉(zhuǎn)向到的https的端口號(hào),也就是項(xiàng)目配置的port
        connector.setRedirectPort(9100);
        return connector;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容