2017-04-17 3 views
0

私のスプリングブートアプリケーションにSSLを有効にしたい。スプリングブート:RSAが動作する、JKSがない

私は、このコマンドを使用してキーストアを生成:

keytool -genkey -alias myapp -keyalg RSA -keystore tomcat.keystore 

application.propertiesは含まれています

server.port = 8443 
server.ssl.key-store = classpath:tomcat.keystore 
server.ssl.key-store-password = ### 
server.ssl.key-password = !&* 
server.ssl.enabled=true 

まず私は、このコマンドを使用して、JKSキーストアを作成していた:

keytool -genkey -alias tomcat -keystore keystore.jks -validity 3650 

をしかし、私は受け取りました訪問時のエラーhttps://localhost:8443

​​

なぜ今は動作していますか?

私はいくつかの他の質問があります: 1.いくつかのチュートリアルを見て、キーストアファイルをsrc/main/resourcesに入れることを提案しました。これは本当に良いアイデアですか?

2. key-store-passwordは何ですか? key-passwordとは何ですか?

3. SSLを有効にするために必要なのはこれだけですか? crtcerのファイルはどうですか?彼らはどこで使われていますか?

+0

RSAキーストアはどうですか? sslキーを作るのではないということはどういう意味ですか? –

答えて

1

localhost uses an unsupported protocol.サーバがクライアントがサポートできる暗号をサポートしていることを確認してください。

This site can’t provide a secure connectionの場合、接続が信頼できないためメッセージが表示される可能性があります。もちろん。ここでは単にクライアントに無視するように指示します。

また、JKSファイルにエイリアスを設定して、サーバーに正しいエイリアスを読み込ませるようにしてください。

src/main/resourcesにJKSを配置するのは良い方法ですが、必須ではなく、安全でアクセスしやすいことを確認してください。

crtcerは、Javaのため、明示的に必要とされていませんが、あなたがCAによって署名された証明書を取得したら、サーバーが存在する場合は、ルートではありません(中間およびルート証明書を見つけてみましょうするJKSに証明書をインポートします必須)

keytoolでキーを生成したら、ファイルを安全に保つだけです。 CSR値を生成する必要があります。信頼できる証明書のインポートにも同じjKSが必要です。

JSSEでOpenSSL(可能な場合)を手に入れることをお勧めします。

+0

リソースを 'resources'フォルダの下に置くことは、それがユーザに配信されることを意味しますか? 「はい」の場合、キーストアをクライアントに配信することをお勧めします。 –

+0

よろしく!親愛なる人は、サーバーは秘密鍵をもちろん送信しません!それ以外の場合はSSLと呼ばれません。あなたは、クライアントの証明書を要求して接続を承認することさえできます。 @ArianHosseinzadeh –

+0

@ArianHosseinzadeh重要なことの1つは、あなたが言及したリソースフォルダが公開されていないことを確認する必要があります。これは、クライアントが証明書をインストールする必要があります。 Besideサーバーはキーを公開しませんが、FTP、HTTPなどでアクセスできる可能性がありますので、安全な場所に保管してください。 –

関連する問題