HTTPS認證二 openssl生成證書及簽名

2021-10-01 22:01:32 字數 3587 閱讀 2276

ca根證書

mkdir private

# 生成私鑰 key 檔案:

openssl genrsa -out private/ca.key 2048

輸出generating rsa private key, 2048 bit long modulus

.......+++

.........................+++

e is 65537 (0x10001)

private 目錄下有 ca.key 檔案生成。

# 生成證書請求 csr 檔案

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

這裡需要填寫一些資訊

# 生成憑證 crt 檔案

openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt

建立配置檔案:

[ ca ] 

default_ca = foo # the default ca section

[ foo ]

dir = ./ # top dir

database = ./index.txt # index file.

new_certs_dir = ./newcerts # new certs dir

certificate = ./private/ca.crt # the ca cert

serial = ./serial # serial no file

private_key = ./private/ca.key # ca private key

randfile = ./private/.rand # random number file

default_days = 365 # how long to certify for

default_crl_days= 30 # how long before next crl

default_md = sha1 # message digest method to use

unique_subject = no # set to 'no' to allow creation of

# several ctificates with same subject.

policy = policy_any # default policy

[ policy_any ]

countryname = match

stateorprovincename = match

organizationname = match

organizationalunitname = match

localityname = optional

commonname = supplied

emailaddress = optional

伺服器證書的生成

# 建立乙個 key,伺服器不需要密碼

openssl genrsa -out server/server.key 2048

# 為我們的 key 建立乙個證書簽名請求 csr 檔案

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

# 會有一些問題,保持和之前一樣就好,注意裡面的hostname, 填寫伺服器的ip位址,確保能通過這個位址訪問伺服器

# 使用我們私有的 ca key 為剛才的 key 簽名

openssl ca -in server/server.csr -cert private/ca.crt -keyfile private/ca.key -out server/server.crt -config "./conf/openssl.conf"

# 會有一些提示資訊,直接確認

客戶端證書的生成

mkdir users 

# 為使用者建立乙個 key,需要密碼

openssl genrsa -des3 -out ./users/client.key 2048

# 根據提示輸入密碼

# 為 key 建立乙個證書簽名請求 csr 檔案,會有一些資訊,和之前填寫一致

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

# 使用我們私有的 ca key 為剛才的 key 簽名

openssl ca -in ./users/client.csr -cert ./private/ca.crt -keyfile ./private/ca.key -out ./users/client.crt -config "./conf/openssl.conf"

為了可以通過瀏覽器驗證,轉化為p12格式:

openssl pkcs12 -export -clcerts -in ./users/client.crt -inkey ./users/client.key -out ./users/client.p12  

# 輸入密碼後,users 目錄下有 client.p12 檔案生成。

格式轉換:

為了在程式中使用,我們將客戶端crt 和 key以及ca.crt轉化為pem格式的檔案

openssl x509 -in ca.crt -out cacrt.pem -outform pem

openssl x509 -in client.crt -out clientcrt.pem -outform pem

openssl rsa -in client.key -out clientkey.pem

我們需要的證書檔案有:

根證書ca.crt

cacrt.pem

根證書簽發的服務端證書

server.crt

服務端私鑰

server.key

根證書簽發的客戶端證書

client.crt

clientcrt.pem

客戶端私鑰

client.key

clientkey.pem

openssl生成https證書

openssl生成https證書 1.首先要生成伺服器端的私鑰 key檔案 openssl genrsa des3 out server.key 1024 執行時會提示輸入密碼,此密碼用於加密key檔案 去除key檔案口令的命令 openssl rsa in server.key out serve...

https 相關知識 (openssl)

秘鑰演算法和協議 對稱加密 加密和解密使用同乙個秘鑰 des data encryption standard 不安全,容易被破解 56位秘鑰 3des triple des aes advanced encryption standard 安全性特別高 秘鑰128bits 192bits 256b...

openssl生成https證書

本文主要介紹在linux環境下通過openssl生成自己的ssl證書,並搭配nginx伺服器啟用https。我對證書的了解也不是很多,從網上蒐羅一些資料,並在centos上成功搭建https伺服器,通過本文整理如下 etc pki ca index.txt 跟蹤已頒發的證書,初始為空。注意是0位元組...