Nginx部署SSL证书

作者: deepwinter 分类: 建站 发布时间: 2019-04-11 10:13 点击量: 593 次阅读

下载证书

下载Nginx版本证书。下载到本地的压缩文件包解压后包含:

  • .crt文件:是证书文件,crtpem文件的扩展名。
  • .key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)。

说明: .pem扩展名的证书文件采用Base64-encodedPEM格式文本文件,可根据需要修改扩展名。

以Nginx标准配置为例,假如证书文件名是a.pem,私钥文件是a.key


安装证书

在Nginx的安装目录下创建cert目录(yum安装的目录在/etc/nginx),并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key
更新nginx配置文件如下:

server {
     listen 443;
     server_name www.domain.com; #填写绑定证书的域名
     ssl on;
     root html;
     index index.html index.htm;
     ssl_certificate cert/a.pem;
     ssl_certificate_key cert/a.key;
     ssl_session_timeout 5m;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
     ssl_prefer_server_ciphers on;
     location / {
         root html; #站点目录
         index index.html index.htm;
     }
}

配置文件的主要参数说明如下:

  • listen 443SSL访问端口号为443
  • ssl on:启用SSL功能
  • ssl_certificate:证书文件
  • ssl_certificate_key:私钥文件
  • ssl_protocols:使用的协议
  • ssl_ciphers:配置加密套件,写法遵循openssl标准

执行以下命令,检验配置是否有误。

nginx -t
  • 是,请重新配置。
  • 否,重启 Nginx。即可使用https进行访问。

HTTP 自动跳转 HTTPS(可选)

对于用户不知道网站可以通过HTTPS方式访问的情况,我们可以通过配置服务器,让其自动将HTTP的请求重定向到HTTPS。
您可以在页面中添加JS脚本,也可以在后端程序中添加重定向,还可以通过Web服务器实现跳转。
若您在编译时没有去掉pcre,Nginx 支持rewrite功能。您可在HTTP的server中增加rewrite ^(.*) https://$host$1 permanent;,即可将80端口的请求重定向为HTTPS。

server {
  listen 80;
  server_name deepwinter.com;

  # redirect http tp https
  rewrite ^(.*) https://$host$1 permanent; 
}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注