Spring Boot配置Https访问

有些时候,比如说一些安全敏感性的业务,必须要配置https才能访问请求,而本地也必须要启动https的应用才能进行后续的调试工作。那么我们需要自签证书,让我们的应用跑在https上。

生成自签证书

在Java中有两种常见的证书格式。

  • PKCS12:作为工业标准被广泛使用,文件扩展名一般为.p12或者.pfx,可以使用openssl pkcs12命令来创建,解析。 在Java中直接使用keytool工具处理也是可以的。
  • JKS:仅仅给Java使用的key存储格式。扩展名一般为.jks,使用keytool工具来处理。

使用keytool

# 使用keytool生成pkcs12文件格式证书。
# 如果不指定-storetype,默认为jks类型,即java.security.KeyStore.getDefaultTyp()方法返回的类型
# 参考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
keytool -genkeypair -alias jmxdemo -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore jmxdemo.p12 -validity 3650

# 如果已经生成了默认的jks类型的证书,可以将其转化为pkcs12类型的
# keytool -genkeypair -alias jmxdemo -keyalg RSA -keysize 2048 -keystore jmxdemo.jks -validity 3650
keytool -importkeystore -srckeystore jmxdemo.jks -destkeystore jmxdemo.p12 -deststoretype pkcs12

查看生成的证书:

keytool -list -v  -storetype pkcs12 -storepass 123456 -keystore src/main/resources/keystore/jmxdemo.p12
image.png

使用openssl

参考:OpenSSL 证书功能

配置Spring Boot应用

1 将上一步生成的jmxdemo.p12文件移到resource目录下。

image-20191123223033466

2 配置spring boot使用证书


server.ssl.enabled=true
# The format used for the keystore. It could be set to JKS in case it is a JKS file
# 证书存储的类型,可以是JKS,Java支持的类型就行。
server.ssl.key-store-type=PKCS12
# The path to the keystore containing the certificate
# 证书文件的位置
server.ssl.key-store=classpath:keystore/jmxdemo.p12
# The password used to generate the certificate
# 证书生成试指定的密码
server.ssl.key-store-password=123456
# The alias mapped to the certificate
# 证书的alias
server.ssl.key-alias=jmxdemo
  1. 启动应用,然后查看效果
image-20191123221425827
image-20191123224016178

如果想要配置Resttemplate访问的话:

RestTemplate restTemplate() throws Exception {
    SSLContext sslContext = new SSLContextBuilder()
        // 证书jmxdemo.p12文件的位置
      .loadTrustMaterial(trustStore.getURL(), trustStorePassword.toCharArray())
      .build();
    SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext);
    HttpClient httpClient = HttpClients.custom()
      .setSSLSocketFactory(socketFactory)
      .build();
    HttpComponentsClientHttpRequestFactory factory = 
      new HttpComponentsClientHttpRequestFactory(httpClient);
    return new RestTemplate(factory);
}

证书对比

是否信任为我们访问的时候选择是不是要将其添加为信任证书。可以看出区别

image.png

问题

有可能再我们使用maven的时候,maven的resource插件会自动过滤掉文件中的内容,导致密钥不可用,那么要配置maven不去过滤对应的pkcs文件

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <delimiters>
                        <delimiter>@</delimiter>
                    </delimiters>
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>p12</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pem</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>

最后

pkcs12是工业标准的类型,建议使用pkcs12类型的证书。另外keytool一行命令就可以帮我们生成证书,openssl需要多个步骤。

阿里陶系技术部招人,目前大把机会,HC众多,成功率高,流程快,可辅导修改简历,技术答疑,速来! 不行的话,加个朋友认识下.
邮箱:aihe.ah@alibaba-inc.com
微信:aihehe5211

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容