Tomcat配置自簽名https


從JDK中找到keytool.exe,隨便復制到一個方便的目錄,在命令行中進入這個目錄。

第一步:為服務器生成證書 tomcat.keystore,命令中如果是IP方式訪問用-ext SAN=ip:192.168.18.83,如果是域名用 -ext SAN=dns:www.123.com,注意“您的名字與姓氏是什么?”就是你的IP或域名,其他的看着寫。

keytool -genkey -v -alias tomcat -keyalg RSA -ext SAN=ip:192.168.18.83 -validity 36500 -keystore tomcat.keystore

第二步:為客戶端生成證書,雙向認證時需要客戶端安裝該證書,等待第四步成功后將該證書添加到“個人”區域。

keytool -genkey -v -alias mykey -keyalg RSA -validity 36500 -storetype PKCS12 -keystore client.p12

第三步:將p12文件導出為一個cer文件,因為不能直接將PKCS12格式的證書庫導入服務端證書(tomcat.keystore)。123456為密碼

keytool -export -alias mykey -keystore client.p12 -storetype PKCS12 -storepass 123456 -rfc -file client.cer

第四步:讓服務器信任客戶端證書。

keytool -import -v -file client.cer -keystore tomcat.keystore

第五步:查看服務器的證書庫。(一個是服務器證書,一個是受信任的客戶端證書),可以省略。

keytool -list -keystore tomcat.keystore

第六步:把服務器證書導出為cer文件,然后將該證書添加到“受信任的根證書頒發機構”區域。

keytool -keystore tomcat.keystore -export -alias tomcat -file server.cer

操作完成,在tomcat的server.xml中配置方法如下: 單向認證時需將clientAuth="false",雙向時設置為clientAuth="true",https的默認端口為443,所以port="443",當然也可以設置為其他的。

protocol由之前的HTTP/1.1改成了org.apache.coyote.http11.Http11Protocol。

另外,贈送cer轉keystone命令,注意設置正確的別名:keytool -import -file C:\https\192.168.18.83\server.cer -keystore C:\https\192.168.18.83\tomcat.keystore -alias tomcat。 

<Connector port="443"
 protocol="org.apache.coyote.http11.Http11Protocol"
 SSLEnabled="true"
 maxThreads="150"
 URIEncoding="utf-8"
 scheme="https"
 secure="true"
 clientAuth="true"
 sslProtocol="TLS"
 keystoreFile="c:/keystore/tomcat.keystore"
 keystorePass="123456"
 truststoreFile="c:/keystore/tomcat.keystore"
 truststorePass="123456"
 />

  

 

注意:

將 server.cer 導入到瀏覽器“受信任的根證書頒發機構”區域,這樣是為了讓瀏覽器信任服務器。

將 client.p12 導入到瀏覽器“個人”區域,這樣是為了讓服務器信任瀏覽器,訪問時會提示選擇這個證書。

另外還可以通過openssl來生成相關證書,還有在iis上的配置等,稍后奉上。

 

有圖有真相

 

紅色是變更的部分,在2019年3月13日下午重新編輯博客

從此解決chrome提示"您的連接不是私密連接" ERR_CERT_AUTHORITY_INVALID 的問題。

有圖有真相

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM