java生成Https證書,及證書導入的步驟和過程


以下是相關的Tomcat,JDK和Windows環境:

Tomcat版本:tomcat-7.0.55

JDK版本: jdk1.6.0

目錄所在的位置:

Serve的目錄:D:\server\tomcat-7.0.55\

JDK的目錄:D:\jdk\jdk1.6.0

1、生成服務器的密匙文件casserver.keystore

1)打開CMD切換到Serve的目錄下面D:\Server\tomcat\

2)執行:keytool -genkey -alias casserver -keypass cas123 -keyalg RSA -keystore casserver.keystore -validity 365

說明:

-alias指定別名為casserver;

-keyalg指定RSA算法;

-keypass指定私鑰密碼;

-keystore指定密鑰文件名稱為casserver.keystore;

-validity指定有效期為365天。

另外提示輸入密匙庫口令應與-keypass指定的cas123相同您的名字與姓氏fron.com是CAS服務器使用的域名(不能是IP,也不能是localhost),其它項隨意填。

注意:

服務器上如果有多個JDK,請確認環境變量中的JDK路徑為tomcat所使用的JDK,

如果不在環境變量中,也可切換到指定JDK的bin目錄下執行命令;提示的輸入keystore密碼應與-keypass必須與指定的相同,

否則后面tomcat啟動會報IO異常(Cannot recover key)。

命令執行成功后Server目錄下多出casserver.keystore文件。

3)可以看到Tomcat 下面生成casserver.keystore

 

2.生成服務端證書casserver.cer

1)根據上面導出的casserver.keystore文件就可以生成casserver.cer文件,只需在原來的Serve的目錄下面D:\Server\tomcat\下執行:

keytool -export -alias casserver -storepass cas123 -file casserver.cer -keystore casserver.keystore

說明:

-alias指定別名為casserver;

-storepass指定私鑰為liuqizhi;

-file指定導出證書的文件名為casserver.cer;

-keystore指定之前生成的密鑰文件的文件名。

注意:-alias和-storepass必須為生成casserver.keystore密鑰文件時所指定的別名和密碼,否則證書導出失敗

2)執行上面命令后發現多了casserver.cer文件

3.導入證書文件到cacerts 密鑰庫文件

 接下來就是把上面生成的服務器的證書casserver.cer導入到cacerts密鑰庫文件中(后面的客戶端會用到這些)

keytool -import -trustcacerts -alias casserver -storepass cas123 -file casserver.cer –keystore cacerts

 

命令執行成功后Server目錄下多出cacerts文件。

4.服務端Tomcat配置

在制作完成密鑰文件、證書文件、密鑰庫文件后即可進行服務端Tomcat的配置。打開$CATALINA_HOME/conf/server.xml

<!--keystoreFile 生成的安全證書的位置--> 

<!--keystorePass設置安全證書的密碼-->

<Connector protocol="HTTP/1.1" SSLEnabled="true"

         maxThreads="150" scheme="https" secure="true"

         clientAuth="false"

         sslProtocol="TLS"

         keystoreFile="D:\server\tomcat-7.0.55\casserver.keystore"  

         keystorePass="cas123"   

         port="443"   />

說明:

port一般為8443或443,最常用的是443端口(https默認端口),

這樣https方式訪問的時候可以不加端口號(如:https://sso.demo.com/cas/login);

keystoreFile為tomcat目錄下的密鑰文件;

keystorePass為私鑰密碼;truststoreFile為生成的信任文件,

如果此處不指定則默認為$JAVA_HOME/jre/lib/security/cacerts文件;其它屬性默認即可。

5.生成客戶端密鑰庫文件

單向認證的客戶端配置只需生成客戶端信任文件caserts即可。

首先將服務端生成的證書文件(之前生成的casserver.cer文件)復制到$JAVA_HOME/jre/lib/security下,

然后打開CMD窗口切換到$JAVA_HOME/jre/lib/security下並執行命令:

keytool -import -trustcacerts -alias casclient -storepass changeit -file casserver.cer -keystore cacerts

命令執行成功后JDK目錄/jre/lib/security下多出cacerts文件。

6.客戶端應用配置

TOMCAT修改
tomcat\conf\ server.xml 修改片斷
<!--keystoreFile 生成的安全證書的位置--> 
<!--keystorePass設置安全證書的密碼-->
<Connector protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"   
keystoreFile="D:\server\tomcat-7.0.55\casserver.keystore"  
keystorePass="cas123"   
port="443"/>

7.常見配置錯誤

1)keytool 生成安全證書不能使用IP地址 一律使用域名
2)務必確認客戶端程序使用JDK 路徑正確 分清楚JDK、JRE

 


免責聲明!

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



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