Nginx 設定 SSL 網頁加密

以下會記錄在 RHEL 及 CentOS 7 下安裝及設定 Nginx SSL 的方法, 並會示範安裝自簽憑證及 CA 發行感證的步驟。

1. 安裝 Nginx:

Nginx 沒有包含在 CentOS 預設 Repository 內,要用 yum 安裝需要先啟用 EPEL Repository:

$ sudo yum install epel-release

安裝好 EPEL Repository 後,可以用 yum 很簡單地安裝 Nginx:

$ sudo yum install nginx

安裝好 Nginx 後,執行以下指令啟動 Nginx 及設定開機自動啟動 Nginx:

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

現在需要設定防火牆,開啟 port 80 及 443 的對外連線,如果用預設的 firewalld,可以執行以下指令:

$ sudo firewall-cmd –add-service=http
$ sudo firewall-cmd –add-service=https
$ sudo firewall-cmd –runtime-to-permanent

如果防火牆改成 iptables, 便要執行以下指令:


$ sudo iptables -I INPUT -p tcp -m tcp –dport 80 -j ACCEPT
$ sudo iptables -I INPUT -p tcp -m tcp –dport 443 -j ACCEPT

現在用瀏覽器應該可以存取 Nginx 伺服器。

2. 設定 SSL Cert:

現在設定自簽憑證,以下會將憑證儲存在 /etc/ssl/private 下面:

$ sudo mkdir /etc/ssl/private
$ sudo chmod 700 /etc/ssl/private
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-ssl.key -out /etc/ssl/certs/nginx-ssl.crt

然後按照畫面回答一些關於網站的問題便完成。

現在建立 .pem 檔:

$ sudo openssl dhparam -out /etc/ssl/certs/nginx.pem 2048

3. 設定 Nginx 使用 SSL

現在可以設定 Nginx,建立 Nginx SSL 的設定檔 /etc/nginx/conf.d/ssl.conf:

$ sudo vi /etc/nginx/conf.d/ssl.conf

加入以下內容, 並將 server-name 及 server-ip 改成你的設定:

儲存檔案後,重新啟動 Nginx:

$ sudo systemctl restart nginx

然後應該可以開啟 Nginx 的 SSL 畫面。




Leave a Reply