自寫證照往往用於學習或者測試環境,如果專案商業化執行,應當購買權威第三方 CA 機構頒發的證照。
Apache 中部署 HTTPS
建立目錄 /etc/httpd/ca
,執行命令
# 非對稱加密 rsa 演算法生成2048 位元位的私鑰
openssl genrsa -out server.key 2048
生成 csr 證照籤名請求檔案
# 指定私鑰 server.key 生成新的 server.csr 檔案
openssl req -new -key server.key -out server.csr
填寫註冊資訊,這一欄填寫自己的域名或者 IP 地址。
Common Name (eg, your name or your server's hostname) []:lamp.test.com
將新生成的私鑰和證照拷貝至 ssl 配置目錄。
cp server.key /etc/pki/tls/private/
cp server.crt /etc/pki/tls/certs/
更改 ssl.conf
配置檔案
訪問 https://lamp.test.com
證照有效期由之前的 1 年 變成了 10 年。
Nginx 中部署 HTTPS
首先檢視本機 nginx 是否安裝 http_ssl_module
模組,如果沒有就原始碼重灌 nginx ,使用引數 --with-http_ssl_module
。
nginx -V
進入 /etc/ssl
目錄,執行命令
# 使用 des3 演算法 生成 4096 位元位伺服器私鑰
openssl genrsa -des3 -out server.key 4096
# 生成證照籤名請求檔案
openssl req -new -key server.key -out server.csr
# 生成 4096 位 ca 私鑰
openssl genrsa -des3 -out ca.key 4096
# 去除伺服器私鑰避免以後每次載入檔案需要輸入密碼
openssl rsa -in server.key -out server.key
# 以 x509 證照格式標準生成 10 年的 crt ,注意填寫域名或者 IP 地址
openssl req -new -x509 -key ca.key -out ca.crt -days 3650
# 請求有效期為 3650 天 傳入檔案為server.csr 指定 CA 檔案為 ca.crt 指定私鑰檔案為ca.key 並自動建立 CA 序列檔案 輸出證照檔案 server.crt 至此簽名成功
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
修改 nginx 配置檔案
listen 80;
# 監聽 443 埠
listen 443 ssl;
server_name lnmp.test.com;
# 配置伺服器證照
ssl_certificate /etc/ssl/server.crt;
# 配置伺服器私鑰
ssl_certificate_key /etc/ssl/server.key;
重啟 nginx
nginx -t
nginx -s reload
訪問 lnmp.test.com
成功實現 nginx 簡易部署 HTTPS 。
本作品採用《CC 協議》,轉載必須註明作者和本文連結