java生成Https证书,及证书导入的步骤和过程
原文參考:http://www.cnblogs.com/fron/p/https-20170111.html
以下是相關的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修改
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
zimbra配置使用ad的證書,只需要crt證書即可(發給調用AD的java客戶端也僅是crt證書即可)。
原文參考:https://confluence.atlassian.com/crowd/configuring-an-ssl-certificate-for-microsoft-active-directory-63504388.html
UNIX
Navigate to the directory in which the Java used by JIRA is installed. If the default JAVA installation is used, then it would be
cd?$JAVA_HOMERun the command below, where?server-certificate.crt?is the name of the file from your directory server:
sudo?keytool?-importcert?-keystore?./jre/lib/security/cacerts?-file?server-certificate.crtkeytool?will prompt you for a password. The default keystore password is?changeit.
When prompted?Trust this certificate? [no]:?enter?yes?to confirm the key import:
Password: Enter?keystore?password:??changeit Owner:?CN=ad01,?C=US Issuer:?CN=ad01,?C=US Serial?number:?15563d6677a4e9e4582d8a84be683f9 Valid?from:?Tue?Aug?21?01:10:46?ACT?2007?until:?Tue?Aug?21?01:13:59?ACT?2012 Certificate?fingerprints:MD5:??D6:56:F0:23:16:E3:62:2C:6F:8A:0A:37:30:A1:84:BESHA1:?73:73:4E:A6:A0:D1:4E:F4:F3:CD:CE:BE:96:80:35:D2:B4:7C:79:C1 Trust?this?certificate??[no]:??yes Certificate?was?added?to?keystoreYou may now?change 'URL' to use LDAP over SSL (i.e.?ldaps://<HOSTNAME>:636/) and?use the 'Secure SSL' option?when connecting your application to your directory server.
cer和crt都是證書,只是格式不一樣。具體參考下面的內容
證書與編碼
本至上,X.509證書是一個數字文檔,這個文檔根據RFC 5280來編碼并/或簽發。
實際上,“X.509證書”經常被用來指代IETF的PKIX(Public Key Infrastructure)證書和X.509 v3 證書標準中的CRL(Certificate Revocation List)。
X509 文件擴展名
首先我們要理解文件的擴展名代表什么。DER、PEM、CRT和CER這些擴展名經常令人困惑。很多人錯誤地認為這些擴展名可以互相代替。盡管的確有時候有些擴展名是可以互換的,但是最好你能確定證書是如何編碼的,進而正確地標識它們。正確地標識證書有助于證書的管理。
編碼 (也用于擴展名)
-
.DER?= 擴展名DER用于二進制DER編碼的證書。這些證書也可以用CER或者CRT作為擴展名。比較合適的說法是“我有一個DER編碼的證書”,而不是“我有一個DER證書”。
-
.PEM?= 擴展名PEM用于ASCII(Base64)編碼的各種X.509 v3 證書。文件開始由一行"—– BEGIN …“開始。
常用的擴展名
-
.CRT?= 擴展名CRT用于證書。證書可以是DER編碼,也可以是PEM編碼。擴展名CER和CRT幾乎是同義詞。這種情況在各種unix/linux系統中很常見。
-
CER?= CRT證書的微軟型式。可以用微軟的工具把CRT文件轉換為CER文件(CRT和CER必須是相同編碼的,DER或者PEM)。擴展名為CER的文件可以被IE識別并作為命令調用微軟的cryptoAPI(具體點就是rudll32.exe cryptext.dll, CyrptExtOpenCER),進而彈出一個對話框來導入并/或查看證書內容。
-
.KEY?= 擴展名KEY用于PCSK#8的公鑰和私鑰。這些公鑰和私鑰可以是DER編碼或者PEM編碼。
CRT文件和CER文件只有在使用相同編碼的時候才可以安全地相互替代。
本文轉自Tenderrain 51CTO博客,原文鏈接:http://blog.51cto.com/tenderrain/1964864,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的java生成Https证书,及证书导入的步骤和过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 启用CentOS6.5 64位安装时自带
- 下一篇: Linux---系统日志