javascript
SpringBoot项目配置SSL证书微信小程序jar包
本文主要針對(duì)SpringBoot微信小程序jar包運(yùn)行的項(xiàng)目如何配置SSL證書(shū)。
關(guān)于域名:請(qǐng)確定域名已經(jīng)獲得ICP備案,服務(wù)器對(duì)外端口開(kāi)放。
根據(jù)?程序官??檔描述,微信?程序的wx.request請(qǐng)求有如下?點(diǎn)要求。
● 域名?持https(request、uploadFile、downloadFile)和wss(connectSocket)協(xié)議;
● 域名不能使?IP地址或localhost,且不能帶端?號(hào);端口號(hào)?持443(https請(qǐng)求默認(rèn)為443),并且必須是?個(gè)域名例如www.gworg.com?不能是IP地址。
● 域名必須經(jīng)過(guò)ICP備案;
● 出于安全考慮,api.weixin.qq.com不能被配置為服務(wù)器域名,相關(guān)API也不能在?程序內(nèi)調(diào)?。開(kāi)發(fā)者應(yīng)將appsecret保存到后
臺(tái)服務(wù)器中,通過(guò)服務(wù)器使?appsecret獲取accesstoken,并調(diào)?相關(guān)API。
配置教程
一、申請(qǐng)SSL證書(shū):https://gworg.taobao.com/,選一款最便宜的就可以。
Gworg下載SSL證書(shū),里面有文件包:Tomcat文件夾JKS證書(shū),service.txt里面有證書(shū)密碼。
二、配置項(xiàng)目:
打開(kāi)項(xiàng)目目錄:src->main->resources中,把我們上面的兩個(gè)文件放進(jìn)去
修改application配置文件,application配置文件,有兩種格式properties和yml ;
內(nèi)容相同,格式不同;請(qǐng)不要混用!當(dāng)前項(xiàng)目文件使用的yml,將properties也寫(xiě)在下面。
注意:每個(gè)屬性的分號(hào)后面必須加個(gè)空格,比如port: 443,而不是port:443)
application.yml添加的內(nèi)容如下:
server:port:?443???#https的默認(rèn)端口就是433?不能修改ssl:key-store:?classpath:www.gworg.com.jks????????#證書(shū)pfx的名字key-store-type:?JKS???????????????????????????????#證書(shū)的類型key-store-password:?********??????????????????????#service.txt中的密碼application.properties添加的內(nèi)容如下:
三、如果存在HTTP,可以設(shè)置重定向到HTTPS(也可以不設(shè)置)
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.web.embedded.tomcat.TomcatServletWebServerFactory; import?org.springframework.boot.web.servlet.server.ServletWebServerFactory; import?org.springframework.context.annotation.Bean; import?org.springframework.context.annotation.Configuration;/***?http重定向到https*?@return*/ @Configuration public?class?SecurityConfig {@Beanpublic?ServletWebServerFactory?servletContainer()?{TomcatServletWebServerFactory?tomcat?=?new?TomcatServletWebServerFactory()?{@Overrideprotected?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監(jiān)聽(tīng)的http的端口號(hào)connector.setPort(8080);connector.setSecure(false);//監(jiān)聽(tīng)到http的端口號(hào)后轉(zhuǎn)向到的https的端口號(hào)connector.setRedirectPort(443);return?connector;}}四、將項(xiàng)目打包成jar包
打開(kāi)項(xiàng)目文件夾-->targer文件夾,可以看到j(luò)ar包
關(guān)于項(xiàng)目的其它問(wèn)題:
如果之前一直都是jar包的方式部署到tomcat的小伙伴,可以跳過(guò)這一部分。
由于一開(kāi)始我是采用導(dǎo)出war包的方式部署到tomcat服務(wù)器,因此可能會(huì)在pom.xml中會(huì)添加如下的代碼:
<packaging>war</packaging> 這時(shí)候使用maven導(dǎo)包的時(shí)候,就需要把war改成jar。因?yàn)閣ar包形式部署一般都是將整個(gè)war包放在tomcat中的webapps目錄中啟動(dòng),使用的是服務(wù)器的tomcat,然而SpringBoot會(huì)自動(dòng)嵌入tomcat,所以我會(huì)在pom.xml中再添加如下代碼: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!--?移除嵌入式tomcat插件?--><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><!--?移除之后會(huì)報(bào)錯(cuò),加入下面的依賴?--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>但是這時(shí)候我們使用的是jar包形式部署,jar包形式直接使用SpringBoot內(nèi)置的tomcat,因此我們需要把上面的代碼注釋掉或者刪掉,更改后如下所示:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!--?移除嵌入式tomcat插件?--><!--????????????<exclusions>--><!--????????????????<exclusion>--><!--????????????????????<groupId>org.springframework.boot</groupId>--><!--????????????????????<artifactId>spring-boot-starter-tomcat</artifactId>--><!--????????????????</exclusion>--><!--????????????</exclusions>--></dependency><!--?移除之后會(huì)報(bào)錯(cuò),加入下面的依賴?--><!--????????<dependency>--><!--????????????<groupId>org.springframework.boot</groupId>--><!--????????????<artifactId>spring-boot-starter-tomcat</artifactId>--><!--????????????<scope>provided</scope>--><!--????????</dependency>-->這一部分只是針對(duì)類似我這種情況的小伙伴提出的建議,如果一直都是采用jar包方式部署則可以忽略直接看下一部分。
運(yùn)行jar包
我比較喜歡在運(yùn)行jar包時(shí)同時(shí)創(chuàng)建日志,方便自己后期的檢查維護(hù),因此我們直接到j(luò)ar包的目錄下,輸入如下Linux命令行
nohup?java?-jar?test.jar?>temp.txt?&nohup就是不掛斷運(yùn)行命令,如果終端關(guān)閉時(shí),仍然可以運(yùn)行此jar包,后面的temp.txt就是日志文件,沒(méi)有則自動(dòng)創(chuàng)建,當(dāng)然你也可以選擇不輸出日志文件,命令行如下所示
nohup?java?-jar?test.jar?&使用https訪問(wèn)
在瀏覽器中輸入你的url,成功訪問(wèn)!
總結(jié)
以上是生活随笔為你收集整理的SpringBoot项目配置SSL证书微信小程序jar包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一看就会!一篇全搞定!权限处理专家--S
- 下一篇: SpringBoot整合Quartz--