操作系統是Window下。
第一步安裝軟件
1、安裝Tomcat6.0.35(Tomcat7.0.34測試通過)
2、安裝JDK6(1.6.0_10-rc2,其它版本沒測試)
3、安裝openssl
第二步配置軟件
1、將jdk、jre和openssl的bin目錄設置到path環境變量下
第三步生成證書
1、創建一個目錄,進入cmd命令行下,通過cd命令進入該目錄
2、在指定的目錄下運行命令:openssl genrsa -out server.key 1024生成服務器密鑰文件。
如果目錄下生產server.key的文件,並且文件大小不為0,則說明成功。
如果沒成功,查看輸出的內容中是否有提示“\usr\local\ssl\openssl.cnf”找不到的問題,如果遇到這個問題,說明你並沒有按照第四步的要求將openssl設置到path中,解決的辦法有2個,第一個完成第四步openssl的path設定,第二個是將openssl的bin目錄下的文件“openssl.cfg”修改個名字,然后在c盤下創建“\usr\local\ssl\”目錄,將文件復制進去。
3、再運行命令:openssl req -new -out server.csr -key server.key根據密鑰文件生成簽署文件。
其中各個設置項中,除了Common Name其它的各項都可以為空,不過為了后期你好辨別證書,最好不要設置空,其中Common Name的值必須是你的服務器ip或者是域名,本機測試的話可以用localhost,但是如果要通過移動設備來訪問就不能設置成localhost。
4、再運行命令:openssl genrsa -out ca.key 1024生成客戶端密鑰文件。
5、再運行命令: openssl req -new -x509 -days 365 -key ca.key -out ca.crt生成客戶端的簽署文件。
填寫的內容和第三步一致即可,其中organizationName必須和第三步的一致
6、在當前目錄下創建demoCA文件夾,並在demoCA下創建文件index.txt和serial,serial內容為01,index.txt為空,以及文件夾newcerts
7、在命令行中輸入:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key讓客戶端的簽署證書能夠被網站服務器的簽署證書認識
8、運行命令openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12把服務端簽署證書轉換瀏覽器可以識別的PCS12格式,密碼使用上面輸入的密碼“123456”。
9、運行命令java -cp jetty-5.1.10.jar org.mortbay.util.PKCS12Import server.p12 server.jks,使用jetty中的PKCS12Import工具類完成轉換,密碼同上.(jetty-5.1.10.jar需要放置到當前文件夾中)
如果出現錯誤:說明你的jetty-5.1.10.jar沒有復制到命令行的當前文件夾下。
10、如果你好奇,可以通過命令行keytool -v -list -keystore server.jks 查看下文件的簽署內容。
以上過程總共生成7個文件,我們只關心其中的3個文件,分別是server.p12(tomcat配置用)、server.jks(tomcat配置用)、ca.crt(客戶端證書,需要iOS設備下載安裝)。
第四步配置Tomcat服務器
1、打開Tomcat的目錄,找到conf下的server.xml文件,打開找到被注釋的8443端口部分,修改成如下內容
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" keystoreFile="D:/apache-tomcat-6.0.35/webapps/ROOT/ca/server.p12" keystorePass="123456" keystoreType="PKCS12" truststoreFile="D:/apache-tomcat-6.0.35/webapps/ROOT/ca/server.jks" truststorePass="123456" truststoreType="JKS"/> |
注意:keystoreFile、keystorePass為文件生成的位置和生成證書時輸入的密碼。
我的工程是發布到ROOT下的,需要你將幾個文件同時復制到該文件下:server.p12、server.jks、ca.crt;其中server.p12、server.jks是tomcat的server.xml配置文件要用到的,而ca.crt文件是要發布出去,以供iOS設備下載安裝的客戶端證書。
另外服務器端也需要安裝server.crt證書(如果是僅僅為iOS下載應用服務,這個證書可以不安裝),這個證書需要安裝到受信任的根目錄下。步驟如下:
雙擊server.crt->安裝證書->下一步->選擇”將所有的證書放入下列存儲”->瀏覽選擇“受信任的根證書頒發機構”->剩下的一路點“是”即可。
先關的軟件,以及每個步驟的詳細的頁面截圖和說明,請到下面地址進行下載: