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