• springboot springmvc 支持 https


    Spring Mvc和Spring Boot配置Tomcat支持Https

    背景

    最近在项目开发中需要让自己的后端Restful接口支持https,在参考了很多前辈们的博客后总结了一些。

    SpringBoot配置支持https

    spring boot因为是使用内置的tomcat,所以只需要一些简单的配置即可。

    1.首先打开命令行工具,比如cmd,输入以下命令 
    keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 
    keytool

    2.然后在你的根目录下面会看到一个.p12的文件,如下图所示: 
    p12

    3.将它移到你的spring boot项目中的resources目录下 
    file

    4.最后在application.properties中添加以下配置:

    server.port=8888
    server.ssl.key-store=classpath:keystore.p12
    server.ssl.key-store-password=123456(此处密码为第一步中创建.p12文件时你输入的口令)
    server.ssl.keyStoreType=PKCS12
    server.ssl.keyAlias=tomcat

    5.最后启动你的spring boot项目即可用https的方式访问你的接口了。

    SpringMvc配置支持https

    由于spring mvc的项目需要依赖我们系统安装的tomcat,所以需要对我们系统的tomcat进行相关配置

    1.首先同样需要生成密钥文件等 
    打开命令行输入 
    keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "C:Program FilesApacheapache-tomcat-7.0.77in omcat.keystore" 
    输入的相关配置和之前spring boot生成的那些问题是一样的

    输入密钥库口令:
    再次输入新口令:
    您的名字与姓氏是什么?
    [Unknown]: hwangfantasy
    您的组织单位名称是什么?
    [Unknown]: hwangfantasy
    您的组织名称是什么?
    [Unknown]: hwangfantasy
    您所在的城市或区域名称是什么?
    [Unknown]: hangzhou
    您所在的省/市/自治区名称是什么?
    [Unknown]: zhejiang
    该单位的双字母国家/地区代码是什么?
    [Unknown]: cn
    CN=hwangfantasy, OU=hwangfantasy, O=hwangfantasy, L=hangzhou, ST=zhejiang, C=cn是否正确?
    [否]: y
    输入 <tomcat> 的密钥口令
    (如果和密钥库口令相同, 按回车):

    然后在你的tomcat的bin目录下会出现一个 tomcat.keystore文件。

    2.修改server.xml 
    找到tomcat/conf目录下面的server.xml。找到其中含有 
    Define a SSL HTTP/1.1 Connector on port 8443 
    节点的Connector,取消掉原本的注释,并修改成以下内容:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" 
                maxThreads="150" SSLEnabled="true"
                scheme="https" secure="true"
                clientAuth="false" sslProtocol="TLS" 
                keystoreFile="C:/Program Files/Apache/apache-tomcat-7.0.77/bin/tomcat.keystore"
                keystorePass="123456" />

    其实就是增加了keystoreFilekeystorePass两个属性,其中keystoreFile最好使用绝对路径,因为如果你和我一样使用intellj idea作为开发工具的话,使用相对路径,则idea启动spring mvc项目是无法成功加载keystore的,因为idea读取的配置是从idea的临时目录下 
    C:Usershwangfantasy.IntelliJIdea2017.1system omcat 
    读取的,而keystore不会在临时目录下,所以需要改成绝对路径才能保证通过idea去启动tomcat时能成功加载https的配置。

    3.最后启动tomcat即可使用https接口 
    最后无论是将你的web项目copy到tomcat下的webapps目录下直接启动还是通过idea等工具启动项目和tomcat都可以成功使用https接口了。

  • 相关阅读:
    【PostgreSQL-9.6.3】触发器概述(普通触发器)
    【MySQL】二进制分发安装
    【MySQL】RPM包安装
    【PostgreSQL-9.6.3】分区表
    【PL/SQL】用星号拼出金字塔
    【PostgreSQL-9.6.3】临时表
    【PL/SQL】触发器示例:记录加薪
    【PL/SQL】九九乘法口诀表
    数据结构和算法
    类元编程
  • 原文地址:https://www.cnblogs.com/luoluoshidafu/p/9504106.html
Copyright © 2020-2023  润新知