2017-10-10 11 views
3

私は以前にこれをやったことがないし、ほとんどのチュートリアルでは.crtファイルの扱いについては言及していません。SSLブートに.crtを追加してSSLを有効にする

GoDaddyからSSL証明書を購入し、ダウンロード時にプラットフォームとしてTomcatを選択しました。 zipファイルには、3つのファイルが含ま:

dea08asdjakjawl.crt 
gd_bundle-g1-g1.crt 
gdig.crt.pem 

I CentOS7サーバ上の(組み込みTomcatでポート80上の)実行中の春のブートアプリケーションを持っています。 (サーバーがデジタルオーシャン上で実行されている、それが割り当てられたドメインを有し、かつ単純なHTTPで動作します)

私はすべてのチュートリアルは、私が.jksまたは持っている必要がありますことを示唆しているhttps://something.com

に切り替えたいと思います。それのための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クエリを受け入れるように、私の実行中の春のブートプロジェクトを変更できますか?

答えて

2

次のようになります。

私が代わりのJavaキーストアを使用して、ゼロからCSRを再作成する必要がありました。

その後
keytool -genkey -alias mydomain -keyalg RSA -keystore KeyStore.jks -keysize 2048 

新しいCSR:

keytool -certreq -alias mydomain -keystore KeyStore.jks -file mydomain.csr 

新しい.cerファイルを生成するために、証明書プロバイダーに再送信する必要がありました。そこで彼らは、「バンドル」1が、私はこのような追加するために必要な中間た.cer、だった、言及した2 .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は、余分な行を必要とし、このようなものになりました:

最終的には動作しています。

+0

こんにちは、私はアプリケーションを起動するときに以下の例外を受け取ります。java.lang.IllegalArgumentException:java.io.IOException:DerInputStream.getLength():lengthTag = 109、大きすぎます。助言がありますか? –

-1

Javaを使用する場合は、-keystoreパラメータを使用してkeytoolコマンドを使用して秘密鍵とCSRを生成します。私は、既存の証明書をキーストアにインポートすることが可能かどうかわからないことを認めますが(keytoolは証明書のインポートを許可します)、方法があるかもしれません。

最悪の場合のシナリオでは、鍵ツールを使用してCSRを再生成し、SSL/TLS証明書を再生成します。追加費用は発生しません。

+0

.crtファイルを新しいキーストアにインポートすることはできますが、2つの証明書のうちどちらをインポートする必要がありますか?キーストアが新しく新機能の場合は問題ですか?どのようにして.p12ファイルを作成できますか? – Macskasztorik

0

キーストアとtrusstoreを作成する(またはjavaが提供するデフォルトのtrusstoreを使用する)必要があります。キーストアには、秘密鍵とサーバー証明書が含まれます。トラストストアにはCA証明書が含まれます。 P12のkeystore-

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つのファイルがwhich-ある 1でなければなりませんあなた証明書 2.だから、正しい手順は以下の通りであったCA証明書チェーン

+0

秘密鍵(キーストアに必要な)は.pemファイルですか? "application.yamlにこのキーストアを設定"すると、エクスポートされた.p12ファイルを取り込み、.crtファイルではなく.yamlファイルの場所を定義する必要がありますか?ありがとう – Macskasztorik

+0

それはpemまたはpkcs形式にすることができます、あなたはあなたの秘密鍵は、チェックする必要があります。証明書を作成するためにcsrをGoDaddyに送信した場合は、秘密鍵を作成しておく必要があります。 godaddyがあなたの鍵を作成している場合は、あなたもそれを提供しているに違いありません。 pem秘密鍵は----- BEGIN PRIVATE KEYで始めるので、テキストエディタでファイルを開いて確認することができます。ファイルがpkcs形式の場合、opensslコマンドを使用して読み込むことも、opensslを使ってpemに変換することもできます。 はい、p12またはjks keystore/trustoreを直接使用する必要があります。 – Mukesh

関連する問題