您的位置 首页 java

http与https协议,及SpringBoot中https的配置

一、前言

HTTP (HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTPS (Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。 Https 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

二、SpringBoot中配置Https

1.采用SpringBoot的版本为

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.9.RELEASE</version>
    <relativePath/>
</parent>  

2.在配置文件中.properties,生成证书,可以使用签名或者从 SSL 证书授权中心获得的。

JDK中 keytool 是一个证书管理工具,可以生成自签名证书。 指定的名字叫 test.jks 别名叫test,密码自己设置123456,最后那个直接按得回车

keytool -genkey -keyalg RSA -keysize 1024 -validity 365 -dname “CN=spdb, OU=spdb,O=spdb, L=shanghai, ST=shanghai, C=CN” -alias csii_key -keypass 888888 -keystore test.jks -storepass 123456

  https .path=/home/test.jks  

3.在Application中配置使用SpringBoot 2.0以上版本的相应的配置

 @SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    //下面是2.0的配置,1.x请搜索对应的设置
    @ Bean 
    public ServletWebServerFactory servletContainer() {
         Tomcat ServletWebServerFactory  tomcat  = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
        return tomcat;
    }

     private  String httpsPath;

    @Value("${https.path}")
    public void setBasePath(String httpsPath) {
        this.httpsPath = httpsPath;
    }

    private int httpsPort;

    @Value("${https.port}")
    public void setHttpsPort(int httpsPort) {
        this.httpsPort = httpsPort;
    }


    private Connector createHTTPConnector() {
      //以下配置可以迁移至配置文件中
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
        connector.setScheme("https");
        connector.setSecure(true);
        connector.setPort(httpsPort);
        protocol.setSSLEnabled(true);
        protocol.setKeystoreFile(httpsPath);
        protocol.setKeystorePass("123456");
        protocol.setKeyPass("888888");
        return connector;
    }  

4.完成对https的相关的配置

文章来源:智云一二三科技

文章标题:http与https协议,及SpringBoot中https的配置

文章地址:https://www.zhihuclub.com/195559.shtml

关于作者: 智云科技

热门文章

网站地图