これまでに行ったことはなく、ほとんどのチュートリアルでは.crtファイルの処理方法について言及していません。
GoDaddyからSSL証明書を購入し、ダウンロード時にプラットフォームとしてTomcatを選択しました。 Zipファイルには3つのファイルが含まれていました。
dea08asdjakjawl.crt
Gd_bundle-g1-g1.crt
gdig.crt.pem
CentOS7サーバーでSpring Bootアプリケーション(Tomcatが埋め込まれたポート80)を実行しています。 (サーバーはDigital Oceanで実行されており、割り当てられたドメインがあり、単純なhttpで動作します)
https://something.com に切り替えたい
すべてのチュートリアルでは、そのために.jksファイルまたは.p12ファイルが必要であることを示唆していますが、.crtファイルをそのファイルに変換できませんでした。ほかに、2つの.crtファイルのどれが.jks/.p12に変換する必要があるかわかりません。
これを私のapplication.yamlに追加しましたが、役に立ちませんでした:
server:
port: 443
ssl:
enabled: true
key-alias: server
key-store: "cert.crt"
key-store-password: "***"
この証明書を使用してHTTPSクエリを受け入れるように、実行中のSpring Bootプロジェクトを変更するにはどうすればよいですか?
したがって、正しい手順は次のとおりです。
Java Key Storeを代わりに使用して、CSRをゼロから再作成する必要がありました。
keytool -genkey -alias mydomain -keyalg RSA -keystore KeyStore.jks -keysize 2048
次に、新しいCSR:
keytool -certreq -alias mydomain -keystore KeyStore.jks -file mydomain.csr
新しい.cerファイルを生成するには、証明書プロバイダーに再送信する必要がありました。したがって、彼らは私に上記の2つの.cerファイルを送り返しました。「バンドル」ファイルは中間の.cerでした。これを次のように追加する必要がありました。
keytool -import -trustcacerts -alias intermediate -file intermediate.crt -keystore KeyStore.jks
次に、次のような実際の「長い名前の」.cerファイル:
keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore KeyStore.jks
次に、これは次のようにp12に変換できるものです。
keytool -importkeystore -srckeystore <MY_KEYSTORE.jks> -destkeystore <MY_FILE.p12> -srcstoretype JKS -deststoretype PKCS12 -deststorepass <PASSWORD_PKCS12> -srcalias <ALIAS_SRC> -destalias <ALIAS_DEST>
最後に、application.propertiesには追加の行が必要で、次のようになります。
server.port=443
server.ssl.enabled=true
security.require-ssl=true
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=domain
server.ssl.key-password=password
そしてそれはついに働いています。
キーストアとトラスストアを作成する必要があります(またはJavaが提供するデフォルトのトラスストアを使用します)。キーストアには、秘密鍵とサーバー証明書が含まれます。トラストストアにはCA証明書が含まれます。 p12キーストアを作成するには
openssl pkcs12 -export -in [path/to/certificate] -inkey [path/to/privatekey] -certfile [path/to/ca/certificate ] -out keystore.p12
キーストアのパスワードを入力します。このキーストアをapplication.yamlで設定します。
トラストストアエントリの場合、Javaのデフォルトのトラストストアを使用している場合は、CA証明書を... jre/lib/security/cacertsに追加します。
keytool -import -trustcacerts -alias root -file ca.crt -keystore cacerts
または、trusstoreを作成し、application.yamlでこのトラストストアを設定することもできます
インターネット上で簡単に見つけて変換/作成/インポート/エクスポート/リストするすべてのkeytoolコマンド...
あなたがどれであるかを確認できる3つのファイルが提供されました-1.証明書である必要があります2. CA証明書チェーンである必要があります
Opensslをスプリングブートに追加する場合。
Opensslソフトウェアをすでにインストールしている場合は、以下の手順に従ってください。 //キーと公開証明書を作成する
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
//テスト
openssl x509 -text -noout -in certificate.pem
//鍵と公開証明書を組み合わせる
openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12
// openssl pkcs12 -in certificate.p12 -noout -infoをテストします
春のブーツのプロパティで以下を追加
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
# The path to the keystore containing the certificate
server.ssl.key-store=classpath:certificate.p12
# The password used to generate the certificate
server.ssl.key-store-password=password