程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> keytool-openssl配置tomcat8.5的雙向認證的問題

keytool-openssl配置tomcat8.5的雙向認證的問題

編輯:編程解疑
openssl配置tomcat8.5的雙向認證的問題

openssl方面根證書等全部建好,並且在IIS上可以順利實現雙向認證,現在我想將這一套證書運用到tomcat上,單項認證很輕松就搞定了,但是到了雙向認證就掉入了無底坑,在網上搜了各種方法,都一一實踐不止3次,但沒有一次能夠通過,在這裡向大神們請教一下。
先介紹一下我的環境:
tomcat8.5.5
openssl1.0.2j
JDK8.0_73;

就拿http://szlxh002.iteye.com/blog/2277307上面的做法做一遍,那麼就會報java.lang.Exception: cannot create new ssl的錯誤。

之後我又用keytool實現了一遍,幸好keytool的證書可以完成雙向認證,讓我工作上勉強可以應付過去,但我自己將openssl生成的server.p12裝換為.keystore格式後,再放到tomcat中時,上面的錯又出現了,我不死心,又去看了一遍官方的說明文檔,根據官方的說明問道再配置一番之後,上面的錯誤不報了,除了新錯誤,java.lang.IllegalArgumentException:java.io.IOException:DerInpurtStream.getLength():lengthTag=109,too big.

也就是說我傳入的參數超長了,網上說我的私鑰超長了,可是我對比了一下keytool生成可以用的.keystore文件,它的私鑰也是2048和我.p12的一樣長,這就讓我很不明白了,看看諸位能不能幫我看看問題出在哪裡。拜謝

最佳回答:


額,每次都這樣,提問沒多久自己就搞通了,郁悶也開心,解決方法很簡單,如同我參照官網的配置文件,我在重新生成的一遍後,發現錯誤提示變了,變成初始化SLL context 失敗(之前是因為對同一套證書做了太多不同方式的操作導致證書已經有些損壞或者本就不是一套了,這裡記個教訓,不要把證書名都起一樣。。。)。
然後我就找出現這個錯誤的原因,看到一個前輩的博文裡寫道,在Windows環境下,服務端.keystore的alias 也就是別名一定要是tomcat,否則就會報錯,我馬上試了一些,結果就通了。麻蛋,這是什麼鬼,Windows這麼被鄙視。。。。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved