前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何为Nginx 配置SSL证书?

如何为Nginx 配置SSL证书?

作者头像
用户1560186
发布2019-11-19 20:41:25
3.5K0
发布2019-11-19 20:41:25
举报
文章被收录于专栏:运维录运维录

开始之前


SSL证书作用

1. 实现加密传输

用户通过http协议访问网站时,浏览器和服务器之间是明文传输,这就意味着用户填写的密码、帐号、交易记录等机密信息都是明文,随时可能被泄露、窃取、篡改,被黑客加以利用。

使用SSL证书后,使用https加密协议访问网站,可激活客户端浏览器到网站服务器之间的"SSL加密通道"(SSL协议),实现高强度双向加密传输,防止传输数据被泄露或篡改。

2. 认证服务器真实身份

网站部署全球信任的SSL证书后,浏览器内置安全机制实时查验证书状态,通过浏览器向用户展示网站认证信息,让用户轻松识别网站真实身份,防止钓鱼网站仿冒。

操作步骤

1. 准备SSL证书我这里使用的是域名服务商签发的SSL证书,如果你没有合法可信任的SSL证书,可以搜索签发私有证书方法。

代码语言:javascript
复制
file ssl/domain.*
domain.crt: PEM certificate
domain.key: PEM RSA private key

2. 配置Nginx

代码语言:javascript
复制
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

代码语言:javascript
复制
nginx -t && nginx -s reload
SSL相关指令

1. SSL

代码语言:javascript
复制
语法: ssl on | off;
默认值: ssl off;
使用字段: http, server
功能: 开启SSL功能,nginx建议使用listen 指令代替这个指令。

2. SSL_CERTIFICATE

代码语言:javascript
复制
语法: ssl_certificate file;
默认值: 无
使用字段: http, server
功能: 指定PEM格式的证书文件。

3. SSL_CERTIFICATE_KEY

代码语言:javascript
复制
语法: 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私钥文件。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作步骤
  • SSL相关指令
  • 关于证书
  • 小结
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档