參考網站,
CA證書:http://hi.baidu.com/pipilong03305/blog/item/89c9d6efdaf592e9cf1b3e76.html
EVSSL服務器:http://verisign.itrus.com.cn/Service/Print.asp?ArticleID=31
TOMCAT、 JBOSS HTTPS應用配置方法:http://zhdf.blog.sohu.com/78389522.html
http://thawte.wotrust.cn/Support/java_signing_guide.htm
TOMCAT、 JBOSS HTTPS應用配置方法
SSL
或者Secure Socket Layer,是一種允許web瀏覽器和web服務器通過一個安全的連接進行交流的技術。這意味著將被發送的數據在一端被翻譯成密碼,傳送出去,然后在另一端解開密碼,再進行處理。這是一個雙向的過程,也就是瀏覽器和服務器都需要在發送數據之前對它們進行加密。
SSL協定的另一個重要方面是認證(Authentication)。這就是說,在你開始試圖通過一個安全連接與一個web服務器交流的時候,這個服務器會要求你的瀏覽器出示一組證件,通過“鑒定”的方式來證明這就是你所聲明的網站。
在某些情況下,服務器還會要求你的web瀏覽器的認證書,證明你就是你所說的那個人。這就是所知的“客戶認證”,盡管實際情況中,更多地用在商務-對-商務(B2B)交易,而不是對個人用戶。
但大多數有SSL功能的web服務器不要求客戶認證(Client Authentication)。
證書
為了能實施SSL,一個web服務器對每個接受安全連接的外部接口(IP 地址)必須要有相應的證書(Certificate)。關于這個設計的理論是一個服務器必須提供某種合理的保證以證明這個服務器的主人就是你所認為的那個人。這個證書要陳述與這個網站相關聯的公司,以及這個網站的所有者或系統管理員的一些基本聯系信息。
這個證書由所有人以密碼方式簽字,其他人非常難偽造。對于進行電子商務(e-commerce)的網站,或其他身份認證至關重要的任何商業交易,認證書要向大家所熟知的認證權威(Certificate Authority (CA))如VeriSign或Thawte來購買。這樣的證書可用電子技術證明屬實。實際上,認證權威單位會擔保它發出的認證書的真實性,如果你信任發出認證書的認證權威單位的話,你就可以相信這個認證書是有效的。
Java 生成證書
在許多情況下,認證并不是真正使人擔憂的事。系統管理員或許只想要保證被服務器傳送和接收的數據是秘密的,不會被連接線上的偷竊者盜竊到。慶幸的是,Java提供相對簡單的被稱為keytool的命令行工具,可以簡單地產生“自己簽名”的證書。自己簽名的證書只是用戶產生的證書,沒有正式在大家所熟知的認證權威那里注冊過,因此不能確保它的真實性。但卻能保證數據傳輸的安全性。
keytool生產非簽發證書
keytool -genkey -alias tomcat -keyalg RSA -keystore d:\tomcat.keystore
在此命令中,keytool是JDK自帶的產生證書的工具。把RSA運算法則作為主要安全運算法則,這保證了與其它服務器和組件的兼容性。
這個命令會在用戶的d:\tomcat.keystore產生一個叫做"tomcat.keystore" 的新文件。你會被要求出示關于這個認證書的一般性信息,如公司,聯系人名稱,等等。這些信息會顯示給那些試圖訪問你程序里安全網頁的用戶,以確保這里提供的信息與他們期望的相對應。你會被要求出示密鑰(key)密碼,也就是這個認證書所特有的密碼(與其它的儲存在同一個keystore文件里的認證書不同)。你必須在這里使用與keystore密碼相同的密碼。(目前,keytool會提示你按ENTER鍵會自動幫你做這些)。
如果一切順利,你現在就擁有了一個可以被你的服務器使用的有認證書的keystore文件。
申請簽發證書
自己生產并簽名的證書相對用戶使不可信的,也是不安全的,所以一般我們需要向證書發放機構去購買證書,或者獲取免費證書,下面是正式的申請流程和在tomcat中的配置,jboss或者apache請參閱相關配置。
1) 生成私鑰和公鑰對(Keystore) Create a Keystore
keytool -genkey -keyalg rsa -keystore <keystore_filename> -alias <alias_name>
Keytool 會提示您輸入私鑰密碼、您的姓名(Your name,填單位網址)、您的部門名稱、單位名稱、所在城市、所在省份和國家縮寫(中國填:CN,其他國家填其縮寫),單位名稱一定要與證明文件上的名稱一致,部門名稱(OU)可以不填。除國家縮寫必須填CN外,其余都可以是英文或中文。請一定要保存好您的私鑰和私鑰密碼。WoTrust不會要求您提供私鑰文件!
(2) 生成證書請求文件(CSR) Generate a CSR
keytool –certreq –file certreq.csr –keystore <keystore_filename> -alias <alias_name>
請把生成的certreq.csr 文件復制和粘貼到Thawte證書在線申請頁面的CSR文本框中,或直接發給WoTrust,請等待1-2個工作日后頒發證書。
(3) 導入簽名證書 Import Thawte Codesigning Certificate
一旦Thawte驗證了您的真實身份,將會頒發證書給您。您需要到Thawte網站下載您的證書,請選擇 PKCS #7 格式證書(PKCS #7 Certificate Chain),此證書格式含有您的證書和根證書鏈,Keytool要求此格式證書 ,請把證書保存到您的電腦中。
請使用如下命令導入您的證書到keystore 中,這里假設您的證書名稱為:cert.cer,請同時指明詳細路徑,一旦成功導入證書,請及時備份您的keystore文件:
c:\jdk1.5\bin\keytool –import –trustcacerts –keystore <keystore_filename> -alias <alias_name> -file cert.cer
tomcat 和jboss配置
不管你用的是keytool生產的非正式證書還是申請的正式證書,tomcat和jboss的配置都是一樣的。
Tomcat配置
去掉$CATALINA_HOME/conf/server.xml這個文件中這段代碼的注釋,紅色部分為添加部分。請先copy tomcat.keystore文件到tomcat主目錄。
< -- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="tomcat.keystore" keystorePass="123456"
keystoreType="jks"/>
Connector元素本身,其默認形式是被注釋掉的(commented out),所以需要把它周圍的注釋標志刪除掉。然后,可以根據需要客戶化(自己設置)特定的屬性。一般需要增加一下keystoreFile和keystorePass兩個屬性,指定你存放證書的路徑(如:keystoreFile="C:/.keystore")和剛才設置的密碼(如:keystorePass="123456")。在完成這些配置更改后,必須象重新啟動Tomcat,然后你就可以通過SSL訪問Tomcat支持的任何web應用程序。只不過指令需要像下面這樣:
https://localhost:8443
JBOSS配置
1)把keystore文件拷貝到jboss安裝目錄\server\default\conf下
2)和tomca類似,找到jboss安裝目錄\server\default\deploy\jboss-web.deployer\server.xml文件
https配置已經有了,不過被注釋掉了,按如下配置即可
去掉注釋符號 <!-- 和 -->
<Connector port="8443" address="${jboss.bind.address}"
maxThreads="100" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
scheme="https" secure="true" clientAuth="false"
keystoreFile="${jboss.server.home.dir}/conf/tomcat.keystore"
keystorePass="123456" sslProtocol = "TLS" />
本人操作步驟:
-重新生成jks
-重新生成jks
E:\jdk1.4\bin>keytool -genkey -alias tomcat -keyalg RSA -keystore d:\mykeystore.jks -validity 1000000
會生成一個tomcat.keystore,再配置server.xml便可以用https訪問,但這樣生成的屬自己生產并簽名的證書相對用戶使不可信的,也是不安全的
申請簽發證書
E:\jdk1.4\bin>keytool -genkey -keyalg rsa -keystore mykeystore.jks -alias jboss
在當前目錄生成mykeystore.jks文件,別名為jboss
E:\jdk1.4\bin>keytool -export -alias tomcat -keypass MyPassword -file certreq.csr
keystore密碼:
保存在文件的認證 <certreq.csr>
E:\jdk1.4\bin>keytool -list -keystore mykeystore.jks
輸入keystore密碼:
Keystore 類型: jks
Keystore 提供者: SUN
你的 keystore 包含 2 個輸入
jboss, 2009-10-22, keyEntry,
指紋認證 (MD5): B6:FC:0F:71:98:75:5C:F6:96:02:78:E1:C1:A1:94:EA
myalias, 2004-3-29, keyEntry,
指紋認證 (MD5): 52:11:86:0F:D1:B0:2B:1E:64:76:C5:BD:99:E4:CF:0A