2007-09-11

[unix]Certification / Key Managament

名詞解釋:

  • RSA:為世界上知名的非對稱式加密法之一,他利用的原理為:當你利用私鑰(Private Key)加密時,只能用公鑰(Public Key)解開。反之,用公鑰加密時,僅能用私鑰解開。由於本演算法具備不可否認性,所以也常常被拿來做為電子簽章之用。

  • Certificate Authority:簡單來講 CA 為發憑證(Certificate)的單位,利用 RSA 演算法進行憑證(Certificate)之簽章。

  • Certificate:憑證,也就是透過公正第三人的簽署,證明該憑證的效力。

  • Certificate Signing Requests:向 CA 索取簽章的遞送檔,與 Private Key 分開。

  • Certificate Revocation List:看名字就可以猜到是,憑證被註銷的名單。換句話說,就是該憑證已經失效的意思啦。


而我們的目標就是,自己當自己的 CA,順便還可以發一發憑證給單位內的機器,所以呢,為了達到這個目的,我們必須要先有自己的 root Certificate,然後拿這個 Certificate 去簽署其他的 CSR。



# cat xpextensions >> /etc/pki/tls/openssl.cnf
# mkdir -p /etc/pki/CA
# cd /etc/pki/CA
# openssl req -new -utf8 -nodes -x509 -newkey rsa:1024 -days 3653 -keyout RootCA-RSA-1024-key.pem -out RootCA-RSA-1024-cert.pem
# cp RootCA-RSA-1024-key.pem /etc/pki/CA/private/cakey.pem
# cp RootCA-RSA-1024-cert.pem /etc/pki/CA/cacert.pem

OpenSSL 參數說明:
req:新產生 Certificate 的命令
-new:產生新的 CSR
-utf8:將所有輸入的文字視為 UTF-8 編碼
-nodes:不要將 Private Key 進行 DES/3DES 加密
-x509:產生自我確認的 Certificate 而非產生 CSR
-newkey algo:nbits:採用 algo指定之演算法,產生 nbits 長度之為 nbits 的 Private Key。
-days:為憑證有效期限計數單位為日,3653 日為 10 年。
-keyout:Private Key 輸出之檔名
-out:Cetificate輸出之檔名


產生需要被簽署的 Server CSR ,利用已產生的 RootCA 進行簽署



# openssl req -new -utf8 -nodes -newkey rsa:1024 -days 3653 -keyout server-RSA-1024-key.pem -out server-RSA-1024-cert.csr
# touch /etc/pki/CA/index.txt
# echo 00 > /etc/pki/CA/serial

一般 Certificate 簽署
# openssl ca -policy policy_anything -out RootCA-RSA-1024-server-RSA-1024-signed.pem -infiles server-RSA-1024-cert.csr


802.1x 用 Certificate 簽署
# openssl ca -extensions xpclient_ext -policy policy_anything -out RootCA-RSA-1024-server-RSA-1024-signed.pem -infiles server-RSA-1024-cert.csr


OpenSSL 參數說明:
ca:利用 cakey.pem 對 server-RSA-1024-cert.csr 進行簽署。

沒有留言: