爲nginx配置https並自簽名證書

1. 準備證書

1.1 製作CA證書

ca.key CA私鑰

openssl genrsa -des3 -out ca.key 2048

ca.crt CA根證書(公鑰)

openssl req -new -x509 -days 7305 -key ca.key -out ca.crt

1.2 製作生成網站的證書並用CA簽名認證

假設網站域名爲test.fengniaojr.com

生成網站證書私鑰

openssl genrsa -des3 -out test.fengniaojr.com.pem 1024

製作解密後的網站證書私鑰

openssl rsa -in test.fengniaojr.com.pem -out test.fengniaojr.com.key

生成簽名請求

openssl req -new -key test.fengniaojr.com.pem -out test.fengniaojr.com.csr

在common name中填入網站域名,如test.fengniaojr.com即可生成改站點的證書,同時也可以使用泛域名如*.fengniaojr.com來生成所有二級域名可用的網站證書。

用CA進行簽名

touch /etc/pki/CA/index.txt

echo 00 > /etc/pki/CA/serial

openssl ca -policy policy_anything -days 1460 -cert ca.crt -keyfile ca.key -in test.fengniaojr.com.csr -out test.fengniaojr.com.crt

現在網站私鑰test.fengniaojr.com.key和網站證書test.fengniaojr.com.crt都準備完畢。接下來開始配置服務端。

2. 配置nginx

修改nginx配置文件

http {
    ...
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    ...
}

server{
    ...
    listen 443;
    ssl on;
    ssl_certificate /path/to/test.fengniaojr.com.crt;
    ssl_certificate_key /path/to/test.fengniaojr.com.key;
    keepalive_timeout 70;
    ...
}

修改防護牆配置,放開443端口

sudo vi /etc/sysconfig/iptables

添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

重啓防護牆:
sudo service iptables restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章