您的位置:   网站首页    行业动态    如何为Nginx 配置SSL证书?

如何为Nginx 配置SSL证书?

阅读量:3630615 2019-10-21



开始之前SSL证书作用

1. 实现加密传输
用户通过http协议访问网站时,浏览器和服务器之间是明文传输,这就意味着用户填写的密码、帐号、交易记录等机密信息都是明文,随时可能被泄露、窃取、篡改,被黑客加以利用。
使用SSL证书后,使用https加密协议访问网站,可激活客户端浏览器到网站服务器之间的"SSL加密通道"(SSL协议),实现高强度双向加密传输,防止传输数据被泄露或篡改。
2. 认证服务器真实身份
网站部署全球信任的SSL证书后,浏览器内置安全机制实时查验证书状态,通过浏览器向用户展示网站认证信息,让用户轻松识别网站真实身份,防止钓鱼网站仿冒。
操作步骤1. 准备SSL证书我这里使用的是域名服务商签发的SSL证书,如果你没有合法可信任的SSL证书,可以搜索签发私有证书方法。
file ssl/domain.*
domain.crt: PEM certificate
domain.key: PEM RSA private key2.  配置Nginx
cat /etc/nginx/conf/default.conf
server {
  listen 80;
  listen 443 ssl; # listen ssl port
  server_name www.demo.com;
  index index.shtml index.html;
  root /var/www/html;
   # ssl configure
  ssl on;
  ssl_certificate     ssl/domain.crt;
  ssl_certificate_key ssl/domain.key;
   # force ssl
  error_page 497 https://$server_name$request_uri;
   # proxy processing error_page
  error_page 404 /404.html;
  location ^~ /attachments {
      alias /star/uploads/;
      expires 180d;
  }
  location ^~ /static {
      alias /star/static/;
      expires 180d;
  }
  location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header Host $http_host;
       #proxy_set_header Host $host;
      proxy_pass http://unix:/var/run/django.socket;
  proxy_redirect default;
  }
  access_log /var/log/nginx/access.log access;
  error_log /var/log/nginx/error.log;
}3# 重启Nginx
nginx -t && nginx -s reload
SSL相关指令1. SSL
语法: ssl on | off;
默认值: ssl off;
使用字段: http, server
功能: 开启SSL功能,nginx建议使用listen 指令代替这个指令。2. SSL_CERTIFICATE
语法: ssl_certificate file;
默认值: 无
使用字段: http, server
功能: 指定PEM格式的证书文件。3. SSL_CERTIFICATE_KEY
语法: ssl_certificate_key file;
默认值: 无
使用字段: http, server
功能: 指定PEM格式的密钥的文件。
关于证书1. PEM格式的证书文件PEM (*.pem)由Base64编码的二进制内容和开头行(-----BEGIN CERTIFICATE-----)、结束行(-----END CERTIFICATE-----)组成,支持使用notepad++等文本编辑器打开。nginx 能够识别CRT格式的证书文件(内容相同扩展名不同)。
2. 证书文件与私钥文件如果存在——BEGIN CERTIFICATE——,则说明这是一个证书文件。如果存在——BEGIN RSA PRIVATE KEY——,则说明这是一个私钥文件。
3. 如果没有找到需要的证书格式,可以使用openssl命令转换格式,它们之间是可以互相转换的。
小结最后来总结下文章中的知识点
nginx推荐使用listen 指令替代 ssl on指令,开启ssl。
ssl证书可以向服务商索取免费证书或者使用openssl签发私有证书文件。
ssl证书格式可以转换,对于nginx 使用crt 证书文件与 key私钥文件。
公众号回复 nginx 获得文章专题
欢迎加入QQ群: 166682360
欢迎关注微信公众号: 运维录

   

在线QQ咨询,点这里

QQ咨询

微信服务号