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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring boot 中启用 https

發(fā)布時間:2023/12/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring boot 中启用 https 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>>

獲取證書

https 是加密鏈接. 是需要證書的. 那么證書從哪里取得呢? 在本地測試的時候, 可以自己生成一個 tomcat 的證書, 可以本地測試用.

生成方式配置方式見下面

tool -genkey -v -alias mykey -keyalg RSA -validity 3650 -keystore ./keystore

在yml配置如下

server.port:8443 server.ssl.key-store: classpath:keystore.p12 server.ssl.key-store-password: xxxxx server.ssl.keyStoreType: PKCS12 server.ssl.keyAlias: tomcat

但是本地生成的證書在生產(chǎn)環(huán)境是沒法用的. 第三方調(diào)用的時候是不 OK 的.
于是, 在阿里云上找到了免費的證書申請.

購買后, 會有郵件發(fā)到注冊郵箱來認證的. 當(dāng)然, 這里要注意這個免費的證書只能用在一個域名下.
(不知道為什么用公司郵箱和個人郵箱, 這里給出的認證方式不同. )

spring boot 配置

證書生成好之后, 下載之. 然后放在resources目錄下. 和 application.properties 并列.

阿里云這個下載下來默認是pfx 格式的. 按照下面這樣配置就行:

server.ssl.key-store=classpath:1111111.pfx server.ssl.key-store-password=1111111 server.ssl.keyStoreType=PKCS12

因為是生產(chǎn)環(huán)境, 需要做 http 自動轉(zhuǎn)到 https. 所以這里不配置端口號.

http 自動轉(zhuǎn)到 https

生產(chǎn)環(huán)境上 http 轉(zhuǎn)到 https 是一個很必要的能力. 在 spring boot 的啟動類中. 添加如下代碼即可 ```

package wang.vchen.handling.config;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.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /*** @Auther Vchen* @Description:* @Date: 20:56 2017/6/20.* @Modified:*/ @Configuration public class HttpsConfig {@Beanpublic EmbeddedServletContainerFactory servletContainer() {TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(){//1protected 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(httpConnector());return tomcat;}@Beanpublic Connector httpConnector(){Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");connector.setPort(8080);//表示用8080端口來供http訪問connector.setSecure(false);connector.setRedirectPort(8090);//自動重定向到8090端口return connector;} }

這樣就可以實現(xiàn) HTTPS 了

如果是測試環(huán)境的證書,瀏覽器可能會攔截,說是不安全的,需要將瀏覽器設(shè)置一下。

?

轉(zhuǎn)載于:https://my.oschina.net/kingchen8080/blog/994367

總結(jié)

以上是生活随笔為你收集整理的spring boot 中启用 https的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。