web-dev-qa-db-ja.com

letsencrypt SSL証明書を設定して、Spring Bootアプリケーションで使用するにはどうすればよいですか?

サーバーのセキュリティ保護は初めてなので、これについてはあまり知りませんが、HTTPを使用するには、デジタルオーシャンドロップレットで実行されているSpring Bootアプリケーションを取得する必要があります。

私の考えは、letsencrypt証明書を登録し、それを使用するようSpringに指示することです。

ただし、その方法はわかりません。

ありがとう。

29
BrandenS

Let's EncryptとSpring Bootに関する2つのブログ記事を書きました。

  1. 証明書の発行。Let’s Encrypt Certificateで保護されたSpring Boot Application
  2. 証明書の更新証明書の更新を暗号化しましょう:Spring Bootの場合

簡単に言うと、手順は次のとおりです。

  1. Let's Encrypt client (certbot)をプルします。
  2. ドメインの証明書の生成(例:example.com)

    ./certbot-auto certonly -a standalone -d example.com -d www.example.com

物は/etc/letsencrypt/live/example.comで生成されます。 Spring Bootでは、PKCS#12形式のファイルが必要です。つまり、キーをPKCS#12キーストアに変換する必要があります(OpenSSLを使用するなど)。次のように:

  1. /etc/letsencrypt/live/example.comディレクトリを開きます。
  2. openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name Tomcat -CAfile chain.pem -caname root

PKCS12を含むファイルkeystore.p12/etc/letsencrypt/live/example.comに生成されるようになりました。

Spring Bootアプリケーションを構成します。 application.propertiesファイルを開き、次のプロパティをそこに配置します。

server.port=8443
security.require-ssl=true
server.ssl.key-store=/etc/letsencrypt/live/example.com/keystore.p12
server.ssl.key-store-password=<your-password>
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=Tomcat

詳細と発言については、私の ブログ投稿 を読んでください。

56
Emad Van Ben

ステップ1:gitからcertbotをダウンロードする

ドメインアドレスが指しているサーバーでLet's Encryptのソースコードを取得する必要があります。このステップには数分かかる場合があります。

$ git clone https://github.com/certbot/certbot

$ cd certbot

$ ./certbot-auto --help

注意:Python 2.7.8(またはそれ以上)を事前にインストールする必要があります。

ステップ2:証明書と秘密鍵を生成します

端末で次のコマンドを実行して、Let's Encryptが証明書と秘密鍵を生成します。

$ ./certbot-auto certonly -aスタンドアロン\

-d example.com -d example.com

備考:キーは/etc/letsencrypt/live/example.comディレクトリに生成されます

ステップ3:PEMファイルからPKCS12ファイルを生成する

PEMファイルをPKCS12バージョンに変換するには:次のように、ターミナルでOpenSSLを使用して/etc/letsencrypt/live/example.comに移動し、キーをPKCS12に変換します。

$ openssl pkcs12 -export -in fullchain.pem \

       -inkey privkey.pem \

           -out keystore.p12 \

       -name Tomcat \

       -CAfile chain.pem \

       -caname root

エクスポートパスワードを入力してください:

確認-エクスポートパスワードの入力:

(注:-一度に1行ずつ書き込み、Enterキーを押します)

ステップ4:Spring Bootアプリケーションの構成

'application.properties'を開き、この設定をそこに置きます。

server.port = 8443 security.require-ssl = true

server.ssl.key-store =/etc/letsencrypt/live /example.com/ keystore.p12

server.ssl.key-store-password =password

server.ssl.keyStoreType = PKCS12

server.ssl.keyAlias = Tomcat

9

別のオプションは、Spring Boot Starter ACMEを使用することです。

https://github.com/creactiviti/spring-boot-starter-acme

ACME(自動証明書管理環境)は、LetsEncryptが証明書を自動的に発行するために使用するプロトコルです。

4
acohen
  1. LetsencryptからSSL証明書を取得する
  2. Javaのkeytoolコマンドを使用して、キーストアに追加します
  3. 上で生成されたキーストアを使用するようにSpringアプリケーションを構成します

ファイルは次のようになります。

 server.port = 8443
 server.ssl.key-store = classpath:sample.jks
 server.ssl.key-store-password = secret
 server.ssl.key-password = password
0
AlBlue

スプリングブートwebfluxのプロパティの構成が変更されました

server.port=443

server.ssl.enabled=true//the changed line
server.ssl.keyAlias=netty
server.ssl.key-store=path
server.ssl.key-store-password=password
server.ssl.keyStoreType=PKCS12
0
ahll