Nginx自建CA配置https伺服器

2021-07-26 23:41:31 字數 1744 閱讀 5498

一、openssl

openssl1.0.1g以上

二、自建ca,用ca證書進行簽名,建立伺服器證書

1.使用ca.sh建立ca跟證書

首先,修改openssl的配置檔案:

sudo vim /usr/local/ssl/openssl.cnf (mac:/system/library/openssl)

修改default_bits=1024為default_bits=2048,使其openssl加密使用2048位。

然後,建立乙個目錄,並且將生成ca證書的指令碼ca.sh複製到這個目錄:
mkdir ca

cd ca

cp /usr/local/ssl/misc/ca.sh ca.sh

ca.sh這個指令碼如果找不到,可以使用 openssl version -a檢視openssl對應的目錄,而ca.sh一般就在這個目錄的子目錄misc目錄下。
之後,執行:
./ca.sh -newca
ca.sh會使用/usr/local/ssl/openssl.cnf中的配置來建立私鑰和證書,建立ca證書過程中,不輸入資訊,直接回車,填寫加密私鑰的密碼和生成ca證書的相關資訊。建立完之後會生成democa目錄。這個目錄有:
cacert.pem  certs  index.txt       index.txt.old  private

careq.pem crl index.txt.attr newcerts serial

其中cacert.pem是ca的證書,private存放ca的私鑰,newcerts存放ca簽名的備份。到這裡,ca已經建好了,下面通過ca來對證書進行簽名。

2.使用ca跟證書為伺服器證書簽名

#生成私鑰

sudo openssl genrsa -des3 -out private.key 2048

#生成證書請求

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

#生成伺服器的私鑰,去除金鑰口令

sudo openssl rsa -in private.key -out server.key

#使用ca進行簽名,生成server.crt

cp server.csr newreq.pem

./ca.sh -sign

mv newcert.pem server.crt

或者上面三步都不需要,直接使用下面一步

openssl ca -in server.csr -out server.crt

所需要的三個檔案server.crt, server.key, ca.crt,其中ca.crt使用者客戶端使用,server.crt和server.key部署於nginx伺服器。

三、將證書配置與nginx伺服器

將server.crt server.key拷貝到/etc/nginx中,然後在/etc/nginx/conf.d中新增伺服器配置my.conf:
server 

server

location /static

}

https 配置自建ca

ssl會話的簡化過程 客戶端傳送可供選擇的加密方式,並向伺服器請求證書 伺服器端傳送證書以及選定的加密方式給客戶端 客戶端取得證書並進行證書驗正 如果信任給其發證書的ca 驗正證書 的合法性 用ca的公鑰解密證書上數字簽名 驗正證書的內容的合法性 完整性驗正 檢查證書的有效期限 檢查證書是否被吊銷 ...

https 配置自建ca

ssl會話的簡化過程 客戶端傳送可供選擇的加密方式,並向伺服器請求證書 伺服器端傳送證書以及選定的加密方式給客戶端 客戶端取得證書並進行證書驗正 如果信任給其發證書的ca 驗正證書 的合法性 用ca的公鑰解密證書上數字簽名 驗正證書的內容的合法性 完整性驗正 檢查證書的有效期限 檢查證書是否被吊銷 ...

openssl 自建CA,並簽發證書

第一部分 自建ca 注 為了更好管理自建ca,在下文中,為沒有特殊說明的情況,ca根目錄都是指的自建ca的根目錄。1.建立ca根目錄,並初始化一些檔案 mkdir home myca cd home myca mkdir certs private conf echo 01 serial echo ...