zoukankan      html  css  js  c++  java
  • Nginx配置SSL证书部署HTTPS网站(颁发证书)

    一、Http与Https的区别
    HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

    HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

    HTTPS和HTTP的区别主要如下:

    • 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
    • 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    • 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    • 4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    二、使用openssl生成证书
    openssl是目前最流行的SSL密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS协议的实现。

    手动颁发

    xshell登录服务器,使用openssl生成RSA密钥及证书,比如生成到:/usr/local/ssl

    openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /usr/local/ssl/nginx.key -out /usr/local/ssl/nginx.crt

    把生成的证书放到nginx配置文件同级目录;

    nginx配置

    编辑nginx配置文件 nginx.conf,加https协议

    server {
        listen 443 ssl;
        server_name www.nginx.com;
        ssl_certificate /usr/local/ssl/nginx.key;
        ssl_certificate_key /usr/local/ssl/nginx.crt;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        #禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
        server_tokens off;
        #如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
        fastcgi_param   HTTPS               on;
        fastcgi_param   HTTP_SCHEME         https;
        access_log /usr/local/nginx/logs/httpsaccess.log;
    }

    配置完毕之后重启Nginx使配置生效

    其它

    自己颁发的SSL证书能够实现加密传输功能,但浏览器并不信任,会给出提示: 

  • 相关阅读:
    Django Rest Framework 视图和路由
    DRF 权限 频率
    DRF 版本 认证
    Serializers 序列化组件
    学DRF之前
    RESTful
    windows下vmware配置nat网络
    python之路——网络编程
    图片上传
    数据库基本设计规范:
  • 原文地址:https://www.cnblogs.com/rinack/p/11106534.html
Copyright © 2011-2022 走看看