標籤:jetty9 https
部署環境:
centos6,jetty9,jdk1.7
認證為第三方機構提供的認證認證
1.修改etc/jetty-https.xml
<Set name="port"><Property name="https.port" default="443" /></Set>
為
<Set name="port"><Property name="https.port" default="8443" /></Set>
2.修改start.ini
jetty.dump.stop=false
為
jetty.dump.stop=
etc/jetty-ssl.xml
etc/jetty-https.xml
3.重啟jetty服務
訪問https://localhost 會提示認證不是受信任的,則說明服務啟動成功
製作認證:
1.產生keystore檔案
keytool -genkey -alias jetty -keyalg RSA -keysize 2048 -keystore mykeystore
比如:
輸入keystore密碼: 123456
您的名字與姓氏是什嗎?
[Unknown]: www.baidu.com
您的組織單位名稱是什嗎?
[Unknown]: IT
您的組織名稱是什嗎?
[Unknown]: XXXX
您所在的城市或地區名稱是什嗎?
[Unknown]: Shanghai
您所在的州或省份名稱是什嗎?
[Unknown]: Shanghai
該單位的兩字母國家代碼是什麼
[Unknown]: CN
CN=徐吖禾, OU=天河, O=天河有限公司, L=南京, ST=江蘇, C=CN 正確嗎?
[否]: y
輸入<xahCA>的主密碼
(如果和 keystore 密碼相同,按斷行符號):
2.產生csr檔案
keytool -certreq -alias jetty -keystore mykeystore -file certreq.csr
3.提交認證驗證機構,擷取中級認證和伺服器憑證
直接儲存為zhongji.cer 和server.cer即可
4.匯入中級認證 (與第三方機構確認是那一個類型的https認證,注意別名)
keytool -import -trustcacerts -keystore mykeystore -alias zhongji -file zhongji.cer
5.匯入伺服器憑證
keytool -import -trustcacerts -keystore mykeystore -alias jetty -file server.cer
附:刪除認證:keytool -delete -alias tomcat -keystore server.jks
查看認證:keytool -list -v -keystore server.jks
jetty9中
1.把以上的mykeystore檔案放入jetty目錄的etc目錄下
2.修改jetty-ssl.xml檔案
<Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/mykeystore"/></Set>
<Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set>
<Set name="KeyManagerPassword">123456</Set>
<Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.truststore" default="etc/mykeystore"/></Set>
<Set name="TrustStorePassword">123456</Set>
<Set name="EndpointIdentificationAlgorithm"></Set>
把以上內容修改為:
<Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/keystore"/></Set>
<Set name="KeyStorePassword">123456</Set>
<Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="OBF:1u2u1wml1z7s1z7a1wnl1u2g"/></Set>
<Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.truststore" default="etc/keystore"/></Set>
<Set name="TrustStorePassword"><Property name="jetty.truststore.password" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set>
<Set name="EndpointIdentificationAlgorithm"></Set>
密碼為建立mykeystore時的密碼
3.重啟jetty伺服器
再次訪問jetty,成功
JDK中keytool常用命令
-genkey 在使用者主目錄中建立一個預設檔案".keystore",還會產生一個mykey的別名,mykey中包含使用者的公開金鑰、私密金鑰和認證
-alias 產生別名
-keystore 指定密鑰庫的名稱(產生的各類資訊將不在.keystore檔案中
-keyalg 指定密鑰的演算法
-validity 指定建立的認證有效期間多少天
-keysize 指定密鑰長度
-storepass 指定密鑰庫的密碼
-keypass 指定別名條目的密碼
-dname 指定認證擁有者資訊 例如: "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list 顯示密鑰庫中的認證資訊 keytool -list -v -keystore sage -storepass ....
-v 顯示密鑰庫中的認證詳細資料
-export 將別名指定的認證匯出到檔案 keytool -export -alias caroot -file caroot.crt
-file 參數指定匯出到檔案的檔案名稱
-delete 刪除密鑰庫中某條目 keytool -delete -alias sage -keystore sage
-keypasswd 修改密鑰庫中指定條目口令 keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import 將已簽名數位憑證匯入密鑰庫 keytool -import -alias sage -keystore sagely -file sagely.crt
匯入已簽名數位憑證用keytool -list -v 以後可以明顯發現多了認證鏈長度,並且把整個CA鏈全部列印出來。
本文出自 “學習中online” 部落格,請務必保留此出處http://fengsheng.blog.51cto.com/3324215/1532142