openssl生成CA證書

2021-10-19 08:46:08 字數 3166 閱讀 1972

首先要有乙個ca根證書,然後用ca根證書來簽發使用者證書。使用者進行證書申請:一般先生成乙個私鑰,然後用私鑰生成證書請求(證書請求裡應含有公鑰資訊),再利用證書伺服器的ca根證書來簽發證書。

生成ca私鑰(.key)–>生成ca證書請求(.csr)–>自簽名得到根證書(.crt)(ca給自已頒發的證書)。

# generate ca private key (製作ca.key 私鑰)

openssl genrsa -out ca.key 2048

# generate csr

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

#openssl建立的自簽名證書在chrome端無法信任,需要新增如下

echo "subjectaltname=dns:rojao.test.com,ip:10.10.2.137" > cert_extensions

# generate self signed certificate(ca 根證書)

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -extfile cert_extensions -out ca.crt

整個提示將如下所示:

outputcountry name (2 letter code) [au]:cn

state or province name (full name) [some-state]:guangdong

locality name (eg, city) :guangzhou

organization name (eg, company) [internet widgits pty ltd]:rojao, inc.

organizational unit name (eg, section) :r&d department

common name (e.g. server fqdn or your name) :rojao ca root

email address :[email protected]

在實際的軟體開發工作中,往往伺服器就採用這種自簽名的方式,因為畢竟找第三方簽名機構是要給錢的,也是需要花時間的。

生成私鑰(.key)–>生成證書請求(.csr)–>用ca根證書簽名得到證書(.crt)

# private key

openssl genrsa -des3 -out server.key 2048

# generate csr

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

#openssl建立的自簽名證書在chrome端無法信任,需要新增如下

echo "subjectaltname=dns:rojao.test.com,ip:10.10.2.137" > cert_extensions

# generate certificate

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

最重要的一行是common name (e.g. server fqdn or your name)那一行。您需要輸入與伺服器關聯的網域名稱,或者是您伺服器的公共ip位址。

整個提示將如下所示:

outputcountry name (2 letter code) [au]:cn

state or province name (full name) [some-state]:guangdong

locality name (eg, city) :guangzhou

organization name (eg, company) [internet widgits pty ltd]:rojao, inc.

organizational unit name (eg, section) :r&d department

common name (e.g. server fqdn or your name) :10.10.2.137

email address :[email protected]

假如報錯:/etc/pki/ca/index.txt: no such file or directory

unable to open '/etc/pki/ca/index.txt

解決:建立/etc/pki/ca/index.txt檔案

mkdir -p ca/newcerts

touch ca/index.txt

touch ca/serial

echo 「01」 > ca/serial

openssl genrsa -des3 -out client.key 1024 

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

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

報錯:failed to update database

txt_db error number 2

刪除之前建立的 index.txt serial 檔案後重建

有時需要用到pem格式的證書,可以用以下方式合併證書檔案(crt)和私鑰檔案(key)來生成

cat client.crt client.key> client.pem 

cat server.crt server.key > server.pem

結果:

服務端證書:ca.crt, server.key, server.crt, server.pem

客戶端證書:ca.crt, client.key, client.crt, client.pem

生成pfx(p12)格式 證書

openssl pkcs12 -export -in server.crt -out server.p12 -inkey server.key

openssl生成CA根證書及子證書

生成根證書 1.生成ca秘鑰,得到ca.key openssl genrsa out ca.key 4096 2.生成ca證書簽發請求,得到ca.csr openssl req new key ca.key out ca.csr subj c cn st jiangsu l nanjing o ji...

openssl 發布ca簽名證書

作業系統為linux,linux一般裝完系統後就會自動安裝 openssl元件 找到本機的openssl 執行以下命令 openssl version a 找到輸出資訊中的這一行 openssldir etc pki tls 改目錄就是 openssl的 安裝目錄了,後面操作過程中用到的配置檔案來自...

使用Openssl生成CA及簽發證書方法

準備步驟 生成 ca 1 在dos視窗中轉換到out32dll目錄下。例如 cd e 電子書 openssl openssl 0.9.8g out32dll 2 生成ca的key檔案 執行如下命令 openssl genrsa out catest.key 1024 執行成功後,在out32dll目...