Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | 雲棲社區 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Github | Search | About

2.31. Spring boot with HTTPS SSL

2.31.1. 生成自簽名證書

			
keytool -genkey -alias www.netkiller.cn -keyalg RSA -keystore /www/netkiller.cn/www.netkiller.cn.keystore
			
			

導入證書(Windows)

			
keytool -selfcert -alias www.netkiller.cn -keystore www.netkiller.cn.keystore
keytool -export -alias www.netkiller.cn -keystore www.netkiller.cn.keystore -storepass passw0rd -rfc -file www.netkiller.cn.cer
			
			

導入證書(JVM)

			
keytool -importcert -alias www.netkiller.cn -file www.netkiller.cn.cer -keystore /srv/java/jre/lib/security/cacerts
			
			

2.31.2. application.properties 配置檔案

配置Tomcat HTTPS 連接埠 8443(由於JVM不能fork和setuid,所以無法向nginx,apache httpd 那樣設置 80 連接埠,除非你使用root用戶運行,但這樣做是不安全的。)

			
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=/www/netkiller.cn/www.netkiller.cn.keystore
server.ssl.key-store-password=passw0rd
server.ssl.key-store-type=JKS
server.ssl.key-alias=www.netkiller.cn
			
			

keystore 檔案可以放到 classpath 中,首先將證書檔案放到 src/main/resources 目錄中,然後配置 application.properties 如下:

				server.port=8443
				server.ssl.enabled=true
				server.ssl.key-store=classpath:www.netkiller.cn.keystore
				server.ssl.key-store-password=123456
				server.ssl.key-store-type=JKS
				server.ssl.key-alias=www.netkiller.cn
			

2.31.3. 啟動 Spring boot

			
/srv/java/bin/java -server -Xms2048m -Xmx8192m -Djava.security.egd=file:/dev/./urandom -jar /www/netkiller.cn/www.netkiller.cn/www.netkiller.cn-0.0.1.war
			
			

2.31.4. restTemplate 調用實例

			
String url = "https://www.netkiller.cn:8443/public/test/version.json";
ResponseEntity<RestResponse<String>> result = restTemplate.exchange(url, HttpMethod.GET, null, new ParameterizedTypeReference<RestResponse<String>>() {});