---
title: OpenSSLで作成したTLS証明書をSpring Bootアプリに設定
tags: ["Spring Boot", "TLS", "Spring WebFlux", "Netty"]
categories: ["Programming", "Java", "org", "springframework", "boot"]
date: 2018-04-17T09:29:53Z
updated: 2018-04-20T11:46:40Z
---

[この記事](https://blog.ik.am/entries/449)で作成したTLS証明書をSpring Bootに設定します。

試した環境は

* Spring Boot 2.0.1.RELEASE
* Spring WebFlux (Reactor Netty)

です。


証明書は`/tmp/`以下で作成した想定です。

証明書をpks12形式にExportしたのち、KeystoreにImportします。

次のコマンドを実行してください。`changeme`は変えてください。

```
openssl pkcs12 -export \
        -name hello-pks \
        -in /tmp/127-0-0-1.sslip.io.crt  \
        -inkey /tmp/127-0-0-1.sslip.io.key \
        -out /tmp/keystore.p12 \
        -password pass:foobar

keytool -importkeystore \
        -destkeystore /tmp/keystore.jks \
        -srckeystore /tmp/keystore.p12 \
        -deststoretype pkcs12 \
        -srcstoretype pkcs12 \
        -alias hello-pks \
        -deststorepass changeme \
        -destkeypass changeme \
        -srcstorepass foobar \
        -srckeypass foobar \
        -noprompt
```

Spring Bootの`application.properties`に次のように設定します。

``` proprties
server.port=8443
server.ssl.enabled=true
server.ssl.protocol=TLSv1.2
server.ssl.key-store=file:///tmp/keystore.jks
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=hello-pks
server.ssl.key-password=changeme
server.ssl.key-store-password=changeme
```

これでTLS対応完了です。

[https://hello.apps.127-0-0-1.sslip.io:8443](https://hello.apps.127-0-0-1.sslip.io:8443)にアクセスしてください(`127.0.0.1`で解決されます)。

![image](https://user-images.githubusercontent.com/106908/38861321-408bbc60-426d-11e8-8a96-a25a8ca84c5c.png)
