廢話不多講隙姿,我們直入正題。
首先我假設你的系統(tǒng)已經(jīng)安裝了openssl厂捞。使用openssl version -a即可查看當前安裝的版本输玷。沒有安裝的請自行百度安裝openssl教程。
1.創(chuàng)建目錄并授予權限:
進入ca目錄:
cd ca
2. 為服務器端和客戶端準備公鑰蔫敲、私鑰:
① 生成服務器端私鑰:
openssl genrsa -out server.key 1024
② 生成服務器端公鑰:
openssl rsa -in server.key -pubout -out server.pem
③ 生成客戶端私鑰:
openssl genrsa -out client.key 1024
④ 生成客戶端公鑰:
openssl rsa -in client.key -pubout -out client.pem
3.生成 CA 證書
① 生成 CA 私鑰:
openssl genrsa -out ca.key 1024
② 生成請求文件:
openssl req -new -key ca.key -out ca.csr
注意饲嗽,這里的 Organization Name (eg, company) [Internet Widgits Pty Ltd]: 后面生成客戶端和服務器端證書的時候也需要填寫,不要寫成一樣的D魏佟C蚕骸!
可以隨意寫如:myca, myserver, myclient裙犹。
然后 Common Name (e.g. server FQDN or YOUR name) []: 這一項尽狠,是最后可以訪問的域名,我這里為了方便測試叶圃,寫成 localhost
③ 生成ca證書:
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
4.生成服務器端證書和客戶端證書
① 服務器端需要向 CA 機構申請簽名證書袄膏,在申請簽名證書之前依然是創(chuàng)建自己的 CSR 文件:
openssl req -new -key server.key -out server.csr
② 向自己的 CA 機構申請證書,簽名過程需要 CA 的證書和私鑰參與掺冠,最終頒發(fā)一個帶有 CA 簽名的證書:
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
③ 生成client端csr:
openssl req -new -key client.key -out client.csr
④ client 端得到 CA 簽名生成client端證書:
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt
我們的 ca 文件夾下已經(jīng)有如下內(nèi)容了:
以上為全部內(nèi)容
補充沉馆,
? nginx服務端配置的時候使用的key和pem格式的證書,所以上述中的pem格式的server證書不是最終結果
openssl x509 -in server.crt -out server-root.pem