微信小程序開發(fā),,正式上線后臺接口需要啟用HTTPS,后臺采用SpringBoot2.0進行開發(fā),在配置SSL證書啟用HTTPS時遇到些許坑,,在此做下記錄,,希望能幫到和我一樣的菜鳥……
1、生成SSL證書
MAC系統(tǒng):keytool -genkey -alias your.alias(別名隨便起) -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 validity 3650
Windows系統(tǒng),,請在JDK目錄下找到keytool.exe
keytool -genkey -alias your.alias(別名隨便起) -keypass yourpass1 -keyalg RSA -keysize 2048 -validity 3650 -keystore D:/keys/keystore.keystore -storepass yourpass2
輸入密鑰庫口令:
再次輸入新口令:
您的名字與姓氏是什么?
[Unknown]: xxx
您的組織單位名稱是什么?
[Unknown]: xxx
您的組織名稱是什么?
[Unknown]: xxx
您所在的城市或區(qū)域名稱是什么?
[Unknown]: beijing
您所在的省/市/自治區(qū)名稱是什么?
[Unknown]: beijing
該單位的雙字母國家/地區(qū)代碼是什么?
[Unknown]: china
CN=xxx, OU=xxx, O=xxx, L=beijing, ST=beijing, C=china是否正確?
[否]: y
請正確設(shè)置上面的參數(shù)
2,、創(chuàng)建一個SpringBoot2.X項目
配置就不寫了
3、將生成的keystore.p12或者keystore.keystore拷貝到項目resources目錄下
4,、配置入口文件
package com.yourcompany.test;
import org.apache.catalina.connector.Connector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class WandeTestSslApplication {
public static void main(String[] args) {
SpringApplication.run(WandeTestSslApplication.class, args);
}
//下面是2.0的配置,,1.x請搜索對應(yīng)的設(shè)置
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat;
}
private Connector createHTTPConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//同時啟用http(8080)、https(8443)兩個端口
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(8080);
connector.setRedirectPort(8443);
return connector;
}
}
5,、配置application.yml文件
server:
port: 8443
ssl:
# 證書名字
key-store: classpath:keystore.p12
#key-store: classpath:keystore.keystore
# 密鑰庫密碼
key-store-password: yourpass2
#key-password: yourpass1 #springboot2.0不需要配置這個 T-T
key-store-type: PKCS12
key-alias: your.alias
配置到這里,,就可以運行了
6、新建Controller
@Controller
@RequestMapping("/")
public class IndexController {
@GetMapping("/")
public String index() {
return "index";
}
}
運行起來,,打開瀏覽器:https://localhost:8443,,會出現(xiàn)證書安全提示,因為是自已生成未認證的證書,,所以不用理會
|