Nginx是一款非常常见的web服务器。本文详细描述如何在Nginx服务器上部署并使用SSL(Secure Sockets Layer)证书。

前提条件

  • 已安装SSL卸载驱动,如:OpenSSL 1.1.0f及以上版本。
  • 建议使用最新稳定版Nginx Stable version。
  • 确保已经获取数字证书。有关获取数字证书方法,可参阅如何获取数字证书

如何部署

SSL相关配置

按照如下步骤对SSL进行相关配置:

  1. 打开Nginx的conf目录下的nginx.conf配置文件,定位以下代码段:

    # HTTPS server
    # #server {
    # listen 443;
    # server_name localhost;
    # ssl on;
    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;
    # ssl_session_timeout 5m;
    # ssl_protocols SSLv2 SSLv3 TLSv1;
    # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    # ssl_prefer_server_ciphers on;
    # location / {
    #}
    #}
  2. 将以上代码段替换为:

    server {
       listen 443;
       server_name localhost;
       ssl on;
       root html;
       index index.html index.htm;
       ssl_certificate  /xxx/xx/rsa.pem;      #RSA证书路径
       ssl_certificate_key  /xxx/xx/rsa.key;  #RSA证书私钥路径
       ssl_session_timeout 5m;
       ssl_ciphers 
       ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_prefer_server_ciphers on;
       location / {
           root html;
           index index.html index.htm;
       }
    }
  3. 选择以下方式之一,重启Nginx服务器:

    • 运行.../nginx/sbin/nginx -t进行检测,若出现异常,按照提示解决;若没有问题,运行.../nginx/sbin/nginx -s reload热加载。
    • 运行pkill nginx关闭nginx进程,并运行../nginx/sbin/nginx启动Nginx服务器。

强制HTTP跳转HTTPS (可选)

为了将用户默认的HTTP请求自动跳转为HTTPS请求,打开nginx.conf配置文件,添加一下代码:

return 301 https://$host$request_uri;

上述步骤需重启后生效。

更多信息

你已成功完成SSL证书部署。如果要对所部署的网站进行安全监测,参阅MySSL的使用