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