天天看點

安全證書常用工具介紹3.KeyStore Explorer

ssl介紹

SSL是Secure Sockets Layer(安全套接層協定)的縮寫,可以在Internet上提供秘密性傳輸。Netscape公司在推出第一個Web浏覽器的同時,提出了SSL協定标準。其目标是保證兩個應用間通信的保密性和可靠性,可在伺服器端和使用者端同時實作支援。已經成為Internet上保密通訊的工業标準。
SSL能使使用者/伺服器應用之間的通信不被攻擊者竊聽,并且始終對伺服器進行認證,還可選擇對使用者進行認證。SSL協定要求建立在可靠的傳輸層協定(TCP)之上。SSL協定的優勢在于它是與應用層協定獨立無關的,高層的應用層協定(例如:HTTP,FTP,TELNET等)能透明地建立于SSL協定之上。SSL協定在應用層協定通信之前就已經完成加密算法、通信密鑰的協商及伺服器認證工作。在此之後應用層協定所傳送的資料都會被加密,進而保證通信的私密性。
           

1.openssl

OpenSSL是一個開放源代碼的軟體庫包,應用程式可以使用這個包來進行安全通信,避免竊聽,同時确認另一端連接配接者的身份。這個包廣泛被應用在網際網路的網頁伺服器上。

Eric A. Young和Tim J. Hudson自1995年開始編寫後來具有巨大影響的OpenSSL軟體包,這是一個沒有太多限制的開放源代碼的軟體包。Eric A. Young 和Tim J. Hudson是加拿大人,後來由于寫OpenSSL功成名就之後就到大公司裡賺大錢去了。1998年,OpenSSL項目組接管了OpenSSL的開發工作,并推出了OpenSSL的0.9.1版,到目前為止,OpenSSL的算法已經非常完善,對SSL2.0、SSL3.0以及TLS1.0都支援。

OpenSSL采用C語言作為開發語言,這使得OpenSSL具有優秀的跨平台性能,這對于廣大技術人員來說是一件非常美妙的事情,可以在不同的平台使用同樣熟悉的東西。OpenSSL支援Linux、Windows、BSD、Mac、VMS等平台,這使得OpenSSL具有廣泛的适用性。但習慣C語言總比使用C++重新寫一個跟OpenSSL相同功能的軟體包輕松不少。

基本功能

OpenSSL整個軟體包大概可以分成三個主要的功能部分:SSL協定庫、應用程式以及密碼算法庫。OpenSSL的目錄結構自然也是圍繞這三個功能部分進行規劃的。

作為一個基于密碼學的安全開發包,OpenSSL提供的功能相當強大和全面,囊括了主要的密碼算法、常用的密鑰和證書封裝管理功能以及SSL協定,并提供了豐富的應用程式供測試或其它目的使用。

輔助功能

BIO機制是OpenSSL提供的一種高層IO接口,該接口封裝了幾乎所有類型的IO接口,如記憶體通路、檔案通路以及Socket等。這使得代碼的重用性大幅度提高,OpenSSL提供API的複雜性也降低了很多。

OpenSSL對于随機數的生成和管理也提供了一整套的解決方法和支援API函數。随機數的好壞是決定一個密鑰是否安全的重要前提。

OpenSSL還提供了其它的一些輔助功能,如從密碼生成密鑰的API,證書簽發和管理中的配置檔案機制等等。如果你有足夠的耐心,将會在深入使用OpenSSL的過程慢慢發現很多這樣的小功能,讓你不斷有新的驚喜。

官方網址

https://www.openssl.org/

0.9.8國内下載下傳連結

https://www.chinassl.net/upload/software/win32openssl-0_9_8.rar

2.keytool

keytool 是個密鑰和證書管理工具。它使使用者能夠管理自己的公鑰/私鑰對及相關證書,用于(通過數字簽名)自我認證(使用者向别的使用者/服務認證自己)或資料完整性以及認證服務。它還允許使用者儲存他們的通信對等者的公鑰(以證書形式)。在JDK 1.4以後的版本中都包含了這一工具,它的位置為%JAVA_HOME%\bin\keytool.exe,如下圖所示:

安全證書常用工具介紹3.KeyStore Explorer

一. Keytool建立和導入指令

建立keystore和密鑰對

Generate a Java keystore and key pair

keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -keysize 2048
      

為存在的keystore生成證書請求檔案CSR

Generate a certificate signing request (CSR) for an existing Java keystore

keytool -certreq -alias mydomain -keystore keystore.jks -file mydomain.csr
      

導入根證書或中級證書到keystore

Import a root or intermediate CA certificate to an existing Java keystore

keytool -import -trustcacerts -alias root -file mydomain.crt -keystore keystore.jks
      

導入SSL伺服器證書到keystore

Import a signed primary certificate to an existing Java keystore

keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore keystore.jks
      

為存在的keystore生成自簽名證書

Generate a keystore and self-signed certificate

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048
      

二. Keytool檢視指令

檢視單個證書

Check a stand-alone certificate

keytool -printcert -v -file mydomain.crt
      

列出keystore存在的所有證書

Check which certificates are in a Java keystore

keytool -list -v -keystore keystore.jks
      

使用别名檢視keystore特定條目

Check a particular keystore entry using an alias

keytool -list -v -keystore keystore.jks -alias mydomain
      

三. 其他Keytool指令

删除keystore裡面指定證書

Delete a certificate from a Java Keytool keystore

keytool -delete -alias mydomain -keystore keystore.jks
      

更改keysore密碼

Change a Java keystore password

keytool -storepasswd -new new_storepass -keystore keystore.jks
      

導出keystore裡面的指定證書

Export a certificate from a keystore

keytool -export -alias mydomain -file mydomain.crt -keystore keystore.jks
      

列出信任的CA憑證

List Trusted CA Certs

keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts
      

導入新的CA到信任證書

Import New CA into Trusted Certs

keytool -import -trustcacerts -file /path/to/ca/ca.pem -alias CA_ALIAS -keystore      

下載下傳網址

https://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase14-419411.html

3.KeyStore Explorer

KeyStore資料總管

KeyStore Explorer是Java指令行實用程式keytool和jarsigner的開源GUI替代品。KeyStore Explorer通過直覺的圖形使用者界面展示其功能等。

安全Java的簡化開發

軟體開發人員應該能夠專注于手頭的問題,而不必使用鈍的指令行工具。使用KeyStore Explorer,密鑰對生成和代碼簽名等難以執行的安全任務變得快速而簡單。

管理KeyStores

KeyStore Explorer可用于通過其直覺的圖形界面建立和導航KeyStores。隻需幾個簡單的對話框即可建立和修改,導入和導出KeyStores的内容。

廣泛的格式支援

KeyStore Explorer支援各種KeyStore,密鑰對,私鑰和證書格式,并且可以在它們之間進行轉換。有關支援的格式清單,請參閱功能。

基本CA功能

KeyStore Explorer可用于使用您自己的CA簽署證書。支援各種證書擴充,請參閱規範。

簽署Java代碼

KeyStore Explorer提供了以JAR和J2ME“MIDlet”形式對Java應用程式進行數字簽名的功能。

幾乎無處不在

KeyStore Explorer是用Java編寫的,可以在任何安裝了Oracle JRE的機器上運作。是以,它的功能可在Windows,Mac,Unix和Linux上使用。

下載下傳網址

http://keystore-explorer.org/downloads.html

繼續閱讀