在本教程中,我们将向您展示如何在您的 Linux 服务器上使用 SSL 配置 Nginx。 对于那些不知道的人,传输层安全性 (TLS) 和安全套接字层 (SSL) 提供了一种简单的方法来加密最终用户和 Web 服务器之间的连接。 SSL 使用证书授权系统提供身份验证,以防止网站错误地声称是另一个组织或网站。 本教程向您展示如何在 Nginx 网络服务器上设置强大的 SSL 安全性。
本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo
‘ 到命令以获取 root 权限。 我将逐步向您展示在您的 Linux 上使用 SSL 配置 Nginx。
使用 SSL 配置 Nginx
必需的:
- 假设您已经安装了网络服务器 Nginx。
- 我使用 Namecheap 作为注册商,他们从包括 Comodo 在内的许多其他公司转售 SSL 证书。
第1步。 创建目录
mkdir -p /etc/nginx/ssl/idroot.us
第2步。 生成 SSL 密钥和 CSR
在购买证书之前,您需要生成一个私钥和一个 CSR 文件(证书签名请求)。 订购证书时,系统会要求您提供 CSR 文件的内容。 对于 Common Name,请输入您的预期域名,不带“www”,即 idroot.us。 如果是通配符 SSL,请使用 *.idroot.us。
openssl req -nodes -newkey rsa:2048 -keyout idroot.us.key -out idroot.us.csr
步骤 3。 创建证书包
购买证书后,您最终会收到一封包含您的 SSL 证书的电子邮件。 它包含一个 zip 文件,其中包含以下内容:
- AddTrustExternalCARoot.crt
- COMODORSAAddTrustCA.crt
- COMODORSADomainValidationSecureServerCA.crt
- idroot_net.crt
cat idroot_net.crt AddTrustExternalCARoot.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt >> ssl-bundle.crt
创建证书包后,您可以将其移动到 Nginx SSL 目录。
mv ssl-bundle.crt /etc/nginx/ssl/idroot.us/
第4步。 为 Nginx 配置证书
转到 Nginx 虚拟主机配置,在 Nginx 中使用 SSL 需要修改 listen 指令和三个与 SSL 相关的指令,如以下示例所示:
nano /etc/nginx/conf.d/ssl.conf
server { listen 443 ssl spdy; server_name www.idroot.us idroot.us; root /var/www/idroot.us/public_html; index index.php index.html index.htm; server_tokens off; #SSL CONF ssl on; ssl_certificate /etc/nginx/ssl/idroot.us/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/idroot.us/idroid.us.key; #SSL ssl_session_cache shared:SSL:20m; ssl_session_timeout 10m; ssl_prefer_server_ciphers On; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; # permalink location / { try_files $uri $uri/ /index.php?$args; } # php-script handler location ~ .php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; root /var/www/idroot.us/public_html; fastcgi_param SCRIPT_FILENAME /var/www/idroot.us/public_html$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~ /.ht { deny all; } }
步骤 5。 将 HTTP 虚拟主机重定向到 HTTPS
return 301 https://idroot.us$request_uri;
步骤 6。 重新启动/重新加载 Nginx。
/etc/init.d/nginx restart
恭喜! 您已经成功安装了带有 SSL 的 Nginx。 感谢您使用本教程在 Linux 系统上使用 SSL 安装和配置 Nginx。 如需更多帮助或有用信息,我们建议您查看 Nginx 官方网站.