---
title: Springboot ç³»åï¼ååï¼è¿
éå¯ç¨ HTTPS å å¯ä½ çç½ç«
toc_number: false
date: 2019-08-07 00:10:22
url: springboot/springboot-14-https
tags:
- Springboot
- Https
categories:
- Springboot
---
> æç« å·²ç»æ¶å½å¨ [Github.com/niumoo/JavaNotes](https://github.com/niumoo/JavaNotes) ï¼æ´æ Java ç¨åºåæéè¦ææ¡çæ ¸å¿ç¥è¯ï¼æ¬¢è¿Staråææã
> 欢è¿å
³æ³¨æç[å
¬ä¼å·](https://github.com/niumoo/JavaNotes#%E5%85%AC%E4%BC%97%E5%8F%B7)ï¼æç« æ¯å¨æ´æ°ã

## 1. è·å HTTPS è¯ä¹¦
æ£å¸¸æ
åµä¸ HTTPS è¯ä¹¦éè¦ä»è¯ä¹¦ææä¸å¿è·å¾ï¼è¿æ ·è·å¾çè¯ä¹¦æå
·æå
¬ä¿¡åï¼ä¹ä¼è¢«åç§æµè§å¨å®¢æ·ç«¯æè®¤å¯ã常è§çè¯ä¹¦åçå¦ Symantecï¼GeoTrustmï¼TrustAsiaï¼Symantec çãä¸è¿å¨ Springboot ç HTTPS å®éªä¸å°±æ²¡æå¿
è¦å»ç³è¯·äºï¼æä»¬å¯ä»¥ä½¿ç¨ Java èªå¸¦ç **keytool** çæ HTTPS è¯ä¹¦ã
æ¥ç keytool å·¥å
·ä½¿ç¨è¯´æã
```shell
D:\>keytool
å¯é¥åè¯ä¹¦ç®¡çå·¥å
·
å½ä»¤:
-certreq çæè¯ä¹¦è¯·æ±
-changealias æ´æ¹æ¡ç®çå«å
-delete å 餿¡ç®
-exportcert 导åºè¯ä¹¦
-genkeypair çæå¯é¥å¯¹
-genseckey çæå¯é¥
-gencert æ ¹æ®è¯ä¹¦è¯·æ±çæè¯ä¹¦
-importcert 导å
¥è¯ä¹¦æè¯ä¹¦é¾
-importpass 导å
¥å£ä»¤
-importkeystore ä»å
¶ä»å¯é¥åºå¯¼å
¥ä¸ä¸ªææææ¡ç®
-keypasswd æ´æ¹æ¡ç®çå¯é¥å£ä»¤
-list ååºå¯é¥åºä¸çæ¡ç®
-printcert æå°è¯ä¹¦å
容
-printcertreq æå°è¯ä¹¦è¯·æ±çå
容
-printcrl æå° CRL æä»¶çå
容
-storepasswd æ´æ¹å¯é¥åºçåå¨å£ä»¤
ä½¿ç¨ "keytool -command_name -help" è·å command_name çç¨æ³
D:\>keytool -genkeypair --help
keytool -genkeypair [OPTION]...
çæå¯é¥å¯¹
é项:
-alias
* Https æ¥å£æ§å¶ç±»
*
* @Author niujinpeng
* @Date 2019/4/20 22:59
*/
@RestController
public class HttpsController {
@GetMapping(value = "/hello")
public String hello() {
return "Hello HTTPS";
}
}
```
å¯å¨ä¹åå¯ä»¥éè¿ [https://localhost/hello](https://localhost/hello) è¿è¡è®¿é®äºã

å½ç¶ï¼ç±äºæ¯èªå·±çæçè¯ä¹¦ï¼ä¼æç¤ºä¸å®å
¨ï¼ç»§ç»è®¿é®å³å¯ï¼å¦ææ¯æ£å¸¸ç³è¯·æè
è´ä¹°çè¯ä¹¦å°±ä¸ä¼æè¿ä¸ªé®é¢çã
## 4. HTTP 跳转 HTTPS
å¨ä¸é¢çæµè¯éï¼HTTPS å·²ç»å¯ä»¥è®¿é®äºï¼ä½æ¯ HTTP å´ä¸è½è®¿é®ï¼å¤§å¤æ°æ
åµä¸å¨å¯ç¨äº HTTPS ä¹åï¼é½ä¼å¸æ HTTP ç请æ±ä¼èªå¨è·³è½¬å° HTTPSï¼è¿ä¸ªå¨ Springboot éèªç¶ä¹æ¯å¯ä»¥å®ç°çãæä»¬åªéè¦åä¸ä¸ªé
置类æ HTTP 请æ±ç´æ¥è½¬åå° HTTPS å³å¯ã
```java
/**
*
* HTTP 强å¶è·³è½¬ HTTPS
*
* @Author niujinpeng
* @Date 2019/4/21 17:47
*/
@Configuration
public class Http2Https {
@Value("${server.port}")
private int sslPort;
@Value("${server.http-port}")
private int httpPort;
@Bean
public TomcatServletWebServerFactory servletContainerFactory() {
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);
}
};
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(httpPort);
connector.setRedirectPort(sslPort);
tomcat.addAdditionalTomcatConnectors(connector);
return tomcat;
}
}
```
忬¡å¯å¨ä¹åï¼ä½¿ç¨ [http://localhost/hello](http://localhost/hello) 访é®ä¼èªå¨è·³è½¬å° [https://localhost/hello](https://localhost/hello).
## éå½
妿éè¦ç³è¯·å
è´¹è¯ä¹¦ï¼å¯ä»¥å¨è
¾è®¯äºä¸å
è´¹ç³è¯·ï¼è¯·åèï¼
- [å
è´¹ç DV SSL è¯ä¹¦ç³è¯·](https://cloud.tencent.com/document/product/400/6813#.E8.8E.B7.E5.8F.96.E8.AF.81.E4.B9.A6)ã
妿æ³è¦èªå·±å®è£
è¯ä¹¦ï¼è¯·åèï¼
- [Apache æå¡å¨è¯ä¹¦å®è£
](https://cloud.tencent.com/document/product/400/35243)
- [Nginx æå¡å¨è¯ä¹¦å®è£
](https://cloud.tencent.com/document/product/400/35244)
- [Tomcat æå¡å¨è¯ä¹¦å®è£
](https://cloud.tencent.com/document/product/400/35224)
- [Windows IIS æå¡å¨è¯ä¹¦å®è£
](https://cloud.tencent.com/document/product/400/35225)
ð æç« ç¸å
³ä»£ç å·²ç»ä¸ä¼ Github [Spring Boot https](https://github.com/niumoo/springboot/tree/master/springboot-web-https)ï¼ æ¬¢è¿âStarï¸ï¼æ¬¢è¿ Fork !
**æåçè¯**
>æç« å·²ç»æ¶å½å¨ [Github.com/niumoo/JavaNotes](https://github.com/niumoo/JavaNotes) ï¼æ¬¢è¿Staråææãæ´æä¸çº¿å¤§åé¢è¯ç¹ï¼Javaç¨åºåéè¦ææ¡çæ ¸å¿ç¥è¯çæç« ï¼ä¹æ´çäºå¾å¤æçæåï¼æ¬¢è¿ **Star** åå®åï¼å¸ææä»¬ä¸èµ·åå¾ä¼ç§ã
æç« æå¸®å©å¯ä»¥ç¹ä¸ªã**èµ**ãæã**å享**ãï¼é½æ¯æ¯æï¼æé½å欢ï¼
æç« æ¯å¨æç»æ´æ°ï¼è¦å®æ¶å
³æ³¨ææ´æ°çæç« 以åå享ç干货ï¼å¯ä»¥å
³æ³¨ã **æªè¯»ä»£ç ** ãå
¬ä¼å·æè
[æçå客](https://www.wdbyte.com/)ã
