簡體   English   中英

播放2.1 SSL配置

[英]Play 2.1 SSL Configuration

我是Play的新手,也是為生產配置SSL的新手。 我可以使用自簽名證書在開發模式下成功運行,但是當我嘗試使用簽名證書時,初始客戶端握手失敗並且Play生成以下堆棧跟蹤:

play - Error loading HTTPS keystore from conf/keystore.jks
java.security.NoSuchAlgorithmException: RSA KeyManagerFactory not available
at sun.security.jca.GetInstance.getInstance(GetInstance.java:159) ~[na:1.7.0_11]
at javax.net.ssl.KeyManagerFactory.getInstance(KeyManagerFactory.java:139) ~[na:1.7.0_11]
at play.core.server.NettyServer$PlayPipelineFactory$$anonfun$sslContext$1.apply(NettyServer.scala:74) [play_2.10.jar:2.1.1]
at play.core.server.NettyServer$PlayPipelineFactory$$anonfun$sslContext$1.apply(NettyServer.scala:62) [play_2.10.jar:2.1.1]
at scala.Option.map(Option.scala:145) [scala-library.jar:na]
at play.core.server.NettyServer$PlayPipelineFactory.sslContext$lzycompute(NettyServer.scala:62) [play_2.10.jar:2.1.1]

我正在運行Play 2.1.1和Java 1.7.0_11。 我已經配置了ssl支持如下:

//生成一個csr

keytool -certreq -alias server -keyalg RSA -file server.csr -keystore keystore.jks

//加載root和中間證書

keytool -import -alias godaddy -keystore keystore.jks -file gd_bundle.crt

//加載簽名證書

keytool -import -alias server -keystore keystore.jks -file server.crt

//使用系統參數啟動播放以運行ssl

sudo ../../jars/play-2.1.1/play -Dhttps.port=443 -Dhttps.keyStore="conf/keystore.jks" -Dhttps.keyStorePassword=REDACTED -Dhttps.keyStoreAlgorithm="RSA" run

有誰知道java.security.NoSuchAlgorithmException:RSA KeyManagerFactory如何不可用錯誤?

從命令中刪除-Dhttps.keyStoreAlgorithm=RSA @gma是對的,這是密鑰庫的算法,而不是密鑰。

我使用以下命令用我生成的密鑰啟動我的播放應用程序:

keytool -genkey -alias MyKey -keyalg RSA -keysize 2048 -keystore keystore.jks
play -Dhttps.port=9443 -Dhttps.keyStore=keystore.jks -Dhttps.keyStorePassword=password run

然后將我的瀏覽器指向https://localhost:9443

這是因為RSA不是你的keyStoreAlgorithm而是你的Key算法。 -Dhttps.keyStoreAlgorithm="RSA更改為-Dhttps.keyStoreAlgorithm="jks"因為jks是Java密鑰庫的默認格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM