美文网首页
Nginx环境下配置Https

Nginx环境下配置Https

作者: 山欧巴 | 来源:发表于2017-02-06 15:59 被阅读0次

    一:什么是Https

    SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同时SSL安全机制是依靠数字证书来实现的。

    SSL基于公用密钥和私人密钥,用户使用公用密钥来加密数据,但解密数据必须使用相应的私人密钥。使用SSL安全机制的通信过程如下:用户与IIS服务器建立连接后,服务器会把数字证书与公用密钥发送给用户,用户端生成会话密钥,并用公共密钥对会话密钥进行加密,然后传递给服务器,服务器端用私人密钥进行解密,这样,用户端和服务器端就建立了一条安全通道,只有SSL允许的用户才能与IIS服务器进行通信。

    提示:SSL网站不同于一般的Web站点,它使用的是“HTTPS”协议,而不是普通的“HTTP”协议。因此它的URL(统一资源定位器)格式为“https://网站域名”。

    二:Https的Nginx环境搭建

    使用阿里云的证书服务,阿里云-控制台-安全(云盾)-证书服务,购买证书,选择免费型DV SSL,补全证书,证书状态变成已签发后,点击下载,下载证书for Nginx,在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。

    不建议直接修改nginx.conf文件,建议在sites-available目录下创建一个Http协议配置文件和一个Https协议配置文件,然后在sites-enabled目录下创建前两个文件的链接文件,然后直接编辑这两个链接文件。

    Http协议配置文件(80端口301跳转)

    server {
        listen 80;
    
        server_name 网站域名;
    
        return 301 https://网站域名;
    }
    

    Https协议配置文件

    server {
        listen 443;
    
        root /var/www/项目名称/public;
        index index.php index.html index.htm;
    
        server_name 网站域名;
    
        ssl on;
        ssl_certificate   cert/pem文件;
        ssl_certificate_key  cert/key文件;
        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 / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass 127.0.0.1:9000;
        }
    }
    

    重启Nginx

    service nginx restart
    

    相关文章

      网友评论

          本文标题:Nginx环境下配置Https

          本文链接:https://www.haomeiwen.com/subject/ujxuittx.html