Nginx启用https访问

摘 要

nginx启用ssl加密访问。

由于本站全面开启https协议访问,小编决定将实践过程记录下来,方便后来人。

什么是https?

https 全称:Hyper Text Transfer Protocol over Secure Socket Layer,是http的安全版。即http下加入SSL协议层,因此https的安全基础就是SSL,所以加密内容需要SSL。

配置过程

首先需要申请一个证书,可以申请一个免费得。然后会得到nginx版本证书,一个公钥,一个私钥。将其上传到服务器目录。本次将讲解两种配置方式。

先确认nginx安装时已编译http_ssl模块,也就是执行nginx -V命令查看是否存在--with-http_ssl_module。如果没有,则需要重新编译nginx将该模块加入。

http与https共存方式

意思是指网站可以通过http请求访问,也可以通过https请求访问。注:http端口为80https端口为443。

server {
        listen       80;
        listen 443 ssl;
         ssl_certificate ssl/itunic.crt; #证书公钥文件路径
         ssl_certificate_key  ssl/itunic.key;   #证书私钥文件路径
         ssl_session_timeout  5m;  #5分钟session会话保持
         ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
         ssl_ciphers  HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
        root /www/web/itunic_com/public_html;
        server_name itunic.com www.itunic.com;
        index  index.html index.php index.htm;
        error_page  400 /errpage/400.html;
        error_page  403 /errpage/403.html;
        error_page  404 /errpage/404.html;
        error_page  503 /errpage/503.html;
        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                include fcgi.conf;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
                expires      1d;
        }
        location ~ .*\.(js|css|html|htm)?$ {
                expires      12h;
        }
        location ~ /\.ht {
                deny  all;
        }
        access_log  logs/itunic.com_access.log  wwwlogs;
        error_log  logs/itunic.com_error.log;
}
将http强制转https
server{
      listen 80;
      server_name itunic.com www.itunic.com;
      location / {
          rewrite (.*) https://itunic.com$1 permanent;
      }
   }
server {
        listen 443 ssl;
         ssl_certificate ssl/itunic.crt; #证书公钥文件路径
         ssl_certificate_key  ssl/itunic.key;   #证书私钥文件路径
         ssl_session_timeout  5m;  #5分钟session会话保持
         ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
         ssl_ciphers  HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
        root /www/web/itunic_com/public_html;
        server_name itunic.com www.itunic.com;
        index  index.html index.php index.htm;
        error_page  400 /errpage/400.html;
        error_page  403 /errpage/403.html;
        error_page  404 /errpage/404.html;
        error_page  503 /errpage/503.html;
        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                include fcgi.conf;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
                expires      1d;
        }
        location ~ .*\.(js|css|html|htm)?$ {
                expires      12h;
        }
        location ~ /\.ht {
                deny  all;
        }
        access_log  logs/itunic.com_access.log  wwwlogs;
        error_log  logs/itunic.com_error.log;
}

本站采用第二种也推荐第二种,即强制转https。原因有二:第一,全站加密,更安全。第二,有利于SEO,在搜索引擎方面,https权重高于http。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员宝库

vue-cli 脚手架中 webpack 配置基础文件详解

vue-cli是构建vue单页应用的脚手架,输入一串指定的命令行从而自动生成vue.js+wepack的项目模板。这其中webpack发挥了很大的作用,它使得我...

1433
来自专栏搜云库

使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上

一个用于构建和推送Docker镜像的Maven插件。

1988
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Vault来保护敏感的Ansible数据

Ansible Vault是一项允许用户加密Ansible项目中的值和数据结构的功能。这提供了保证Ansible成功运行敏感数据所必备的能力。

784
来自专栏数据之美

windows 小技巧搜集(不定期更新)

1、更改cmd的默认路径 你可以在注册表的“HKEY_CURRENT_USER\Software\Microsoft\CommandProcessor” 下面新...

2068
来自专栏搜云库

使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上

一个用于构建和推送Docker镜像的Maven插件。 使用Maven插件构建Docker镜像,将Docker镜像push到DockerHub上,或者私有仓库,上...

5969
来自专栏张善友的专栏

PowerShell的开源实现

从Mono老大的blog上Open Source Powershell Implementation 看到了一个PowerShell的开源实现的项目Pash。目...

1806
来自专栏菜鸟程序员

Foosun DotNetCMS2.0登录绕过漏洞

1064
来自专栏zcqshine's blog

android studio生成 keystore 以及获取 SHA1值等

3977
来自专栏工科狗和生物喵

Mac OS X 下非官方软件自启动处理

正文之前 说是处理,想必也没几个人喜欢自启动的软件,我是一个控制欲比较强的人,开机自启搜狗输入法这个我能接受,但是像印象笔记啊,向日葵圆孔Client客户端这些...

4896
来自专栏康怀帅的专栏

CoreOS 容器 Rkt 简单介绍

由于 Docker 已经成为事实上的容器老大,这里暂且将 rkt 内容放入 docker 文件夹。哈哈 官方网站:https://coreos.com/rkt/...

3987

扫码关注云+社区