如何使用Openssl 製做CA證書

1、SSL協議百科名片
算法

  SSL是Secure Socket Layer(安全套接層協議),能夠在Internet上提供祕密性傳輸。Netscape公司在推出第一個Web瀏覽器的同時,提出了SSL協議標準。其目標是保證兩個應用間通訊的保密性和可靠性,可在服務器端和用戶端同時實現支持。瀏覽器

  SSL協議要求創建在可靠的傳輸層協議(TCP)之上。SSL協議的優點在於它是與應用層協議獨立無關的,高層的應用層協議(HTTP,FTP,TELNET等)能透明地創建於SSL協議之上。SSL協議在應用層協議通訊以前就已經完成加密算法、通訊祕鑰的協商及服務器認證工做。安全

  SSL協議提供的安全信道有如下三個特性:bash

   一、機密性:確保數據是保密性和隱私性的。服務器

   二、完整性:確保接收到的爲完完整整的信息。網絡

   三、可用性:確保整個性能的能夠用來做爲安全驗證的標示。ide

OpenSSL是一個強大的安全套接字層密碼庫,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,它仍是一個多用途的、跨平臺的密碼工具,OpenSSL包含一個命令行工具用來完成OpenSSL庫中的全部功能。工具


2、Openssl的簡介
性能

   OpenSSL是一個強大的安全套接字層密碼庫,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,不僅是能夠將其當作一個庫來使用,仍是一個多用途的、跨平臺的密碼工具,OpenSSL包含一個命令行工具用來完成OpenSSL庫中的全部功能。測試

OpenSSL整個軟件包大概能夠分紅三個主要的功能部分

一、Libcrypto:密碼算法庫,負責加密與解密;

   二、Libssl:SSL協議庫,實現ssl協議功能的會話庫;

   三、httpd mod_ssl :openssl 命令行工具。


3、數字證書

  數字證書是一種權威性的電子文檔,由權威公正的第三方機構,即CA中心簽發的證書。

以數字證書爲核心的加密技術(加密傳輸、數字簽名、數字信封等安全技術)能夠對網絡上傳輸的信息進行加密和解密、數字簽名和簽名驗證,確保網上傳遞信息的機密性、完整性及交易的不可抵賴性。

  數字證書可用於:發送安全電子郵件、訪問安全站點、網上證券交易、網上招標採購、網上辦公、網上保險、網上稅務、網上籤約和網上銀行等安全電子事務處理和安全電子交易活動。

  PKI:Public Key Infrastructure,是指用公鑰概念和技術來實施和提供安全服務的具備普適性的安全基礎設施。

一個完整的PKI系統必須具備註冊機構(RC)、權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統、證書吊銷系統(CRL)、端實體(API即應用接口)等基本構成部分。

4、證書格式

目前數字證書 的格式廣泛採用的是X.509 V3國際標準,一個標準的X.509數字證書包含如下一些內容:
證書的版本信息;
  證書的序列號,每一個證書都有一個惟一的證書序列號;
  證書所使用的簽名算法;
  證書的發行機構名稱,命名規則通常採用X.500格式;
  證書的有效期,如今通用的證書通常採用UTC時間格式,它的計時範圍爲1950-2049;
  證書全部人的名稱,命名規則通常採用X.500格式;
證書全部人的公開密鑰

  證書發行者對證書的簽名。

5、利用Openssl製做證書的相關命令

一、加密數據

# openssl enc -des3 -in /path/to/somefile -e -out /path/to/somefile.des3

二、解密數據

# openssl enc -des3 -in /path/to/somefile.des3 -d -out /path/to/somefile

  三、獲取加密所需的特徵碼

# openssl dgst -md5 -hex /path/to/somefile
# md5sum

  四、測試加密速度

# openssl speed

  五、添加密碼時計算其密碼值

# openssl passwd -l -salt

  六、生成隨機數

# openssl rand -base64 num
# openssl rand -hex num

七、生成私鑰

# openssl genrsa 2^n > /path/to/keyfile
# openssl genrsa -out /path/to/keyfile 2^n
# (umask 077; openssl genrsa -out /root/mykey2.pri 2048)

八、提取公鑰

# openssl rsa -in /path/to/keyfile -pubout


6、如何申請證書

  一、生成一個私鑰;

二、製做一個證書籤署請求;

# openssl req -new -key /path/to/private_key -out /paht/to/certificate.csr

  三、由CA負責簽署證書;

7、如何自建CA

  一、爲CA生成一個私鑰;

# cd /etc/pki/CA/
# (umask 077; openssl genrsa -out private/cakey.pem 2048)

二、生成自簽證書;

# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
# touch index.txt
# echo 01 > serial

三、簽署證書

# openssl ca -in /path/to/certreq.csr -out /path/to/certfile.crt -days 365

8、客戶端測試CA證書

# openssl s_client -connect HOST:PORT -CAfile /path/to/cacertfile|-CApath /paht/to/cacertfiles_dir/ -ssl2|-ssl3|-tls1


9、Openssl後綴名的文件

1).key格式:私有的密鑰

2).crt格式:證書文件,certificate的縮寫

3).csr格式:證書籤名請求(證書請求文件),含有公鑰信息,certificate signing request的縮寫

4).crl格式:證書吊銷列表,Certificate Revocation List的縮寫

5).pem格式:用於導出,導入證書時候的證書的格式,有證書開頭,結尾的格式

相關文章
相關標籤/搜索