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证书部署。如果要对所部署的网站进行安全监测,参阅Gworg的使用