柚子快報邀請碼778899分享:網(wǎng)絡(luò)協(xié)議 HTTPS實戰(zhàn)篇
柚子快報邀請碼778899分享:網(wǎng)絡(luò)協(xié)議 HTTPS實戰(zhàn)篇
? ? ? ? https協(xié)議的定義以及與http協(xié)議的區(qū)別這里就不過多贅述了,網(wǎng)上有許多資料可以查詢,并且講解的很透徹,這里聊聊如何在項目中使用,具體怎么操作,大部分碼農(nóng)關(guān)注的都是自己負(fù)責(zé)的業(yè)務(wù),每天敲代碼也都是實現(xiàn)一些業(yè)務(wù)功能(小編也是這樣的),最近有機(jī)會做架構(gòu)涉及到這一塊,實戰(zhàn)了一把,在這里做個分享。
? ? ? ? 首先要實現(xiàn)https訪問服務(wù),必須要有證書,可以先通過萬網(wǎng)申請一個域名阿里云企航_萬網(wǎng)域名_商標(biāo)注冊_資質(zhì)備案_軟件著作權(quán)_網(wǎng)站建設(shè)-阿里云阿里云企航是基于云計算領(lǐng)先的互聯(lián)網(wǎng)應(yīng)用服務(wù)提供商,阿里云旗下品牌,是中國最大的域名注冊服務(wù)提供商,中國虛擬主機(jī)服務(wù)的開創(chuàng)者,中國企業(yè)郵箱服務(wù)的領(lǐng)先者和中國網(wǎng)站建設(shè)服務(wù)的創(chuàng)新者。https://wanwang.aliyun.com/?utm_content=se_1015627502大家可以按需購買,購買域名后每年會贈送免費的證書,這個直接下載即可,比較簡單。
有了證書接下來就是項目配置,這里以SpringBoot項目為例,在application.yml添加配置
server:
port: 6602
ssl:
key-store: 9746304_cscec3bbjcost.com.pfx
key-store-password: 5yalv333
key-store-type: PKCS12
http:
port: 6603
上面6602是https訪問該服務(wù)的端口,6603是http訪問該服務(wù)的端口,9746304_cscec3bbjcost.com.pfx 是從購買的域名下載的對應(yīng)證書,只適用該域名,不可通用
接下來就是代碼配置了,這里直接上代碼
@Configuration
public class TomcatConfig {
@Value("${server.http.port}")
private Integer httpServerPort; //http的端口
@Value("${server.port}")
private Integer serverPort;//https的端口,也是配置文件中配置的端口
@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("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(httpServerPort);
connector.setSecure(false);
connector.setRedirectPort(serverPort);
return connector;
}
}
以上代碼直接copy就可用,相關(guān)配置可自行更改,完成這些配置就可以使用https訪問啦。
? ? ? ? 還有一種方案是通過nginx來配置服務(wù)的https協(xié)議訪問,關(guān)于nginx大家可以先學(xué)習(xí)一下,是一個輕量型反向代理服務(wù)器很好用,這里只講一下相關(guān)配置
如上圖:監(jiān)聽443端口(https的默認(rèn)端口),ssl_certificate和ssl_certificate_key是相關(guān)證書,在萬網(wǎng)購買域名后可以下載, 下面的location配置相信大家都比較熟悉了;配置了nginx的https訪問,則項目中的關(guān)于https的配置可以不要,當(dāng)然也可以留著,留著的話nginx里要配置服務(wù)的https的訪問,不留就直接配置http的鏈接即可。
柚子快報邀請碼778899分享:網(wǎng)絡(luò)協(xié)議 HTTPS實戰(zhàn)篇
相關(guān)閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。