SSL證書理解及生成

2021-09-19 23:03:52 字數 3480 閱讀 7357

509證書一般會用到三類檔案, key, csr, crt

3.1 生成ca證書

主要生成命令:

# 生成ca私鑰

openssl genrsa -out ca.key 4096

# 生成ca證書請求檔案

openssl req -new -key ca.key -out ca.csr

# 生成ca證書(自簽名)

openssl x509 -req -days 36500 -signkey ca.key -in ca.csr -out ca.crt

當前目錄生成檔案有:

-rw-r--r-- 1 root root 1766 apr 17 21:45 ca.key

-rw-r--r-- 1 root root 1013 apr 17 21:46 ca.csr

-rw-r--r-- 1 root root 4856 apr 17 21:53 ca.crt

3.2 生成伺服器證書
主要生成命令有:

# 生成server私鑰

openssl genrsa -out server.key 1024

# 生成server證書請求檔案

openssl req -new -key server.key -out server.csr

# 生成server證書(ca證書和ca私鑰簽名)

openssl ca -keyfile ca.key -cert ca.crt -in server.csr -out server.crt

當前目錄生成檔案有:

-rw-r--r-- 1 root root 1766 apr 17 21:45 server.key

-rw-r--r-- 1 root root 1013 apr 17 21:46 server.csr

-rw-r--r-- 1 root root 4856 apr 17 21:53 server.crt

3.3 生成客戶端證書(同伺服器, 單向認證不需要)
主要生成命令有:

# 生成client私鑰

openssl genrsa -out client.key 1024

# 生成client證書請求檔案

openssl req -new -key client.key -out client.csr

# 生成client證書(ca證書和ca私鑰簽名)

openssl ca -keyfile ca.key -cert ca.crt -in client.csr -out client.crt

當前目錄生成檔案有:

-rw-r--r-- 1 root root 1766 apr 17 21:45 client.key

-rw-r--r-- 1 root root 1013 apr 17 21:46 client.csr

-rw-r--r-- 1 root root 4856 apr 17 21:53 client.crt

3.4 生成pem格式證書(不一定使用到)
主要生成命令有:

# 生成ca pem

cat ca.crt ca.key > ca.pem

# 生成server端pem

cat server.crt server.key > server.pem

# 生成client端pem

cat client.crt client.key > client.pem

3.5 檢視生成內容
生成的檔案:

-rw-r--r-- 1 root root 1766 apr 17 21:45 ca.key

-rw-r--r-- 1 root root 1013 apr 17 21:46 ca.csr

-rw-r--r-- 1 root root 4856 apr 17 21:53 ca.crt

-rw-r--r-- 1 root root 4856 apr 17 21:53 ca.pem

-rw-r--r-- 1 root root 1766 apr 17 21:45 server.key

-rw-r--r-- 1 root root 1013 apr 17 21:46 server.csr

-rw-r--r-- 1 root root 4856 apr 17 21:53 server.crt

-rw-r--r-- 1 root root 4856 apr 17 21:53 server.pem

-rw-r--r-- 1 root root 1766 apr 17 21:45 client.key

-rw-r--r-- 1 root root 1013 apr 17 21:46 client.csr

-rw-r--r-- 1 root root 4856 apr 17 21:53 client.crt

-rw-r--r-- 1 root root 4856 apr 17 21:53 server.pem

檢視證書:

openssl x509 -in server.crt -noout -text

...

3.6 可能遇到的問題
在使用ca證書和私鑰給伺服器端或者客戶端簽名時可能出現下面錯誤:

$ openssl ca -keyfile ca.key -cert ca.crt -in server.csr -out server.crt

using configuration from /usr/lib/ssl/openssl.cnf

enter pass phrase for ca.key:

i am unable to access the ./democa/newcerts directory

./democa/newcerts: no such file or directory

主要是/usr/lib/ssl/openssl.cnf配置問題, 可在當前目錄做如下操作:

# 根據錯誤提示建立democa/newcerts目錄

mkdir -p democa/newcerts

# 建立序列號檔案, 第一行為01, 第二行為空行

echo -e "01\n"

> democa/serial

# 建立index.txt檔案

touch democa/index.txt

生成SSL證書

title 生成ssl證書 date 2015 05 22 15 08 42 category server develop tag 技術,生活,server develop author erictang 最近在忙活公司的事情,所以部落格更新少了,但還是盡量有時間把自己平時的一些筆記整理記錄下來。...

ssl證書生成

openssl req new x509 days 3650 nodes out opt ssl certs postfix.pem keyout opt ssl private postfix.pem第乙個是證書,第二個是key 私鑰 可以應用在很多程式上。下面舉兩個例子 nginx postfi...

let s sencrypt 生成ssl證書

letsencrypt auto certonly standalone email aaa qq.com d aaa.com d www.aaa.com 第二個 d 如果不是需要www的網域名稱可不加 執行好了之後會在 etc letsencrypt live aaa com 下面生成4個金鑰檔案...