標籤:實驗 檔案夾 serial key str you 添加 Opens src
大家都可以產生公開金鑰、私密金鑰對,無法確認公開金鑰對到底是誰的。 如果能夠確定公開金鑰到底是誰的,就不會有這個問題了。例如,如果收到“駭客”冒充“伺服器”發過來的公開金鑰,經過某種檢查,如果能夠發現這個公開金鑰不是“伺服器”的就好了。
為瞭解決這個問題,數位憑證出現了,它可以解決我們上面的問題。先大概看下什麼是數位憑證,一個認證包含下面的具體內容:
- 認證的發布機構
- 認證的有效期間
- 公開金鑰
- 認證所有者(Subject)
- 簽名所使用的演算法
- 指紋以及指紋演算法
認證的內容的詳細解釋會在後面詳細解釋,這裡先只需要搞清楚一點,數位憑證可以保證數字認證裡的公開金鑰確實是這個認證的所有者(Subject)的,或者認證可以用來確認對方的身份。也就是說,我們拿到一個數位憑證,我們可以判斷出這個數位憑證到底是誰的。
1.安裝openssl 之後在/usr/lib/ssl目錄下(ubuntu系統,用whereis查下ssl目錄即可)下找到openssl.cnf,拷貝到工作目錄下。
2.工作目錄下建立demoCA檔案夾,檔案夾中建立檔案index.txt和serial,再建立一個newcerts的檔案夾。在serial裡面添加字元01。
mkdir demoCA
cd demoCA
touch ./{serial, index.txt}
vi serial 添加01 :wq
產生認證過程:(注意以下過程都在工作目錄下進行,即/home/qing/ca,為當時自己實驗時出現差錯,最後還要把產生的檔案移到工作目錄下)
1.產生伺服器端私密金鑰(key檔案)
openssl genrsa -des3 -out server.key 1024
此時輸入的密碼用於每次讀取私密金鑰檔案的口令,可以去除但是不推薦(openssl rsa -in server.key -out server.key)
2.產生CSR檔案(Certificate Signing Request),csr檔案經過ca簽名才能夠產生認證
openssl req -new -key server.key -out server.csr -config openssl.cnf
3.對用戶端進行相同操作產生key以及csr檔案
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf
4.自己做CA
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
5.用自己產生的ca認證為server.csr和client.csr 簽名
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
openssl產生認證 - CSDN部落格