使用SSL运行的所有站点都使用HTTPS协议的默认端口443上的SSL通过加密服务器和客户端之间的数据安全的数据通信。本文将帮助你在Nginx的服务器配置SSL。在这个例子中,我们使用的是自签名证书。
第1步 - 安装Nginx的Web服务器
我们假设你已经在系统上安装Nginx的,但如果你不已经安装了它,使用下面的命令来安装它。
$ sudo apt-get install nginx
第2步 - 获取SSL证书
为了创建SSL证书,第一个要求是创建私钥和CSR。 CSR是其中有关于域名包括公共密钥的所有详细信息的文件。首先创建一个目录,建立csr和key。
# mkdir /etc/nginx/ssl/
# cd /etc/nginx/ssl/
现在用下面的命令创建CSR和密钥文件。更改名称的文件
example.com.key和
example.com.csr按您的域名。 此命令会要求输入你的域的信息。
了解更多有关创建CSR。
# openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
创建CSR后,请向任何证书提供商,如GeoTrust,Comodo,Digicert或GoDaddy等的SSL证书从CA获得证书后,结合您的主证书和中级证书文件中的单个文件。
# cat example.com.crt DigiCertCA.crt >> example.com.pem
第3步:设置虚拟主机使用SSL
让我们编辑Nginx的配置文件
/etc/nginx/conf.d/example.com.conf并添加下列值。
# HTTPS Server Block
server {
listen 443;
server_name example.com www.example.com;
root /var/www/xyz.com/httpdocs;
index index.html index.htm;
ssl on;
ssl_certificate /etc/nginx/ssl/example.com.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
}
第四步 - 重启NGINX
最后,重新启动更改nginx的服务器生效。
# service nginx restart