2008年2月17日 星期日

OpenSSL

需要軟體
openssl

SSL 採用 X.509, 由上而下的金字塔憑證制度 ( Root CA -> CA -> Certificate )

建立RootCA的私鑰(Private Key) rootca.key

# mkdir -p /usr/local/etc/ssl
# /usr/local/etc/ssl
# cd /usr/local/etc/ssl
# openssl genrsa -des3 -out rootca.key 2048

Generating RSA private key, 2048 bit long modulus
..............................................................+++
.........+++
e is 65537 (0x10001)
Enter pass phrase for rootca.key:

要求輸入private key的密碼(repeat)


產生RootCA憑證申請書 rootca.csr


# openssl req -new -key rootca.key -out rootca.req
然後輸入RootCA的私鑰(private key)密碼
然後填資料
* 注意申請書的密碼跟憑證代辦公司的名稱按enter直接跳過

以root CA的身分簽發憑證

需要注意的是最高認證中心不可以太早過期, 因為如果最高認證中心的憑證過期的話, 其簽發的憑證也會失效,所以我們這邊設定成20年

# openssl x509 -req -days 7305 -sha1 -extfile /etc/ssl/openssl.cnf -extensions v3_ca -signkey rootca.key -in rootca.req -out rootca.crt

然後顯示一些資訊後 輸入rootca的私鑰密碼

ldap:

產生ldap server的private key(ldap.cs.nctu.edu.tw.key)


* 如果你為ldap server的私鑰加密碼的話, 每次啟動Server都要再輸入密碼

# openssl genrsa -out ldap.cs.nctu.edu.tw.key 2048
Generating RSA private key, 2048 bit long modulus
............................................................................+++
.............................................................................................+++
e is 65537 (0x10001)

產生ldap server的憑證申請書(ldap.cs.nctu.edu.tw.csr)

# openssl req -new -key ldap.cs.nctu.edu.tw.key -out ldap.cs.nctu.edu.tw.csr
* 輸入資料, 這邊很重要的是Common Name必須設定成 ldap server的FQDN相同, 不同的話會不能用
* 注意申請書的密碼跟憑證代辦公司的名稱按enter直接跳過



最高認證中心(RootCA,自己)發給ldap server憑證(ldap.cs.nctu.edu.tw.crt)

* 此例發給十年的憑證

# openssl x509 -req -days 3650 -sha1 -extfile /etc/ssl/openssl.cnf -extensions v3_req -CA rootca.crt - CAkey rootca.key -CAserial rootca.srl -CAcreateserial -in ldap.cs.nctu.edu.tw.csr -out ldap.cs.nctu.edu.tw.crt

然後顯示一些資訊,再輸入rootca的私鑰密碼。

完成

這樣就完成最高憑證中心與伺服器的認證了,大概看一下檔名與檔案身份的對應

rootca.key (最高憑證中心的私鑰)
rootca.csq (最高憑證中心的憑證申請書)
rootca.crt (最高憑證中心的憑證)

ldap.cs.nctu.edu.tw.key
ldap.cs.nctu.edu.tw.csq
ldap.cs.nctu.edu.tw.crt

沒有留言: