隨筆 openssl證書的生成和使用

2021-09-20 05:35:44 字數 2779 閱讀 5099

證書類別

- 根證書 生成伺服器證書,客戶端證書的基礎。自簽名。

- 伺服器證書 由根證書簽發。配置在伺服器上。

- 客戶端證書 由根證書簽發。配置在伺服器上,並傳送給客戶,讓客戶安裝在瀏覽器裡。

要注意,

1. 伺服器證書的cn要和servername一致,否則啟動httpd時有警告。

2. 瀏覽器安裝客戶端證書時,需要用pkcs12轉換成pfx格式,否則可以安裝但無效。

3. 把根證書安裝到瀏覽器的受信ca中,訪問伺服器時就不會出警告了。

環境: centos6_x64 openssl 1.0.1 apache2.2

echo -n > /etc/pki

/ca/index.txt

echo '00' > /etc/pki

/ca/serial

注意,index.txt需要初始化為0位元組,連換行也不能有。

# 修改/etc/pki/tls/openssl.cnf,放開nscerttype= server的注釋。

[ usr_cert ]

nscerttype = server

cd /etc/pki/ca

# 生成金鑰

openssl genrsa -out private/myca.key 1024

# 生成自簽名證書

openssl req -new -x509 -key private/myca.key -out certs/myca.crt

把這個crt匯入客戶端瀏覽器,就不會顯示證書警告了。

cd /etc/pki/tls

openssl genrsa -out private/sv.key

1024

# 生成請求

openssl req -new -key

private/sv.key -out private/sv.csr

# 使用根證書簽名

openssl ca -in

private/sv.csr -keyfile ../ca/private/myca.key -cert ../ca/certs/myca.crt -out certs/sv.crt

有時,簽發多個證書時,由於common name等資訊重複導致簽名失敗,

可以初始化index.txt和serial。

# 修改/etc/pki/tls/openssl.cnf,注釋掉nscerttype= server,去掉的nscerttype = client, email注釋。

[ usr_cert ]

nscerttype = client, email

cd /etc/pki/tls

openssl genrsa -out private/clnt1.key

1024

openssl req -new -key

private/clnt1.key -out private/clnt1.csr

openssl ca -in

private/clnt1.csr -keyfile ../ca/private/myca.key -cert ../ca/certs/myca.crt -out certs/clnt1.crt

個人證書需要轉成pfx格式

openssl pkcs12 -export -in certs/clnt1.crt -out certs/clnt1.pfx -inkey private/clnt1.key
sslcertificatefile /etc/pki/tls/certs/sv.crt

sslcertificatekeyfile /etc/pki/tls/private/sv.key

sslcertificatechainfile /etc/pki/tls/certs/chain.crt

<--這個從哪兒來的?

sslcacertificatefile /etc/pki/tls/certs/myca.crt

sslverifyclient require

sslverifydepth 1

server {

listen 443 ssl;

server_name localhost;

ssl_certificate /etc/pki/tls/certs/sv2.crt;

ssl_certificate_key /etc/pki/tls/private/sv2.key;

ssl_session_cache shared:ssl:1m;

ssl_session_timeout 5m;

ssl_ciphers high:!anull:!md5;

ssl_prefer_server_ciphers on;

ssl_client_certificate /etc/pki/ca/certs/myca.crt;

ssl_verify_client on;

ssl_verify_depth 1;

另外,遇到了證書不能刪除的問題。解決方法是:

使用mmc,進入 證書,即可刪除。

windows上配置nginx時,可能遇到快取等模組不可用的情況,

需要注釋掉ssl_session_cache等。

生成dh引數:

dhparam -out dh1024.pem

1024

OpenSSL生成證書

要生成證書的目錄下建立幾個檔案和資料夾,有.democa democa newcerts democa index.txt democa serial,在serial檔案中寫入第乙個序列號 01 1.生成x509格式的ca自簽名證書 opensslreq new x509 keyout ca.key...

openssl 生成 證書

x509 證書一般會用到三類文,key,csr,crt。key是私用金鑰 openssl 格,通常是 rsa演算法。csr是證書請求檔案,用於申請證書。在製作 csr檔案的時,必須使用自己的私鑰來簽署申,還可以設定乙個金鑰。crt是ca 認證後的證書文,windows 下面的,其實是 crt 簽署人...

OpenSSL生成證書

1.生成x509格式的ca自簽名證書 opensslreq new x509 keyout ca.key out ca.crt 可以加證書過期時間選項 days 365 2.生成服務端的私鑰 key檔案 及csr 檔案 openssl genrsa des3 out server.key 1024 ...