Nginx启用https访问

摘 要

nginx启用ssl加密访问。

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

什么是https?

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

Nginx启用https访问

配置过程

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

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

http与https共存方式

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

  1. server {
  2.         listen       80;
  3.         listen 443 ssl;
  4.          ssl_certificate ssl/itunic.crt; #证书公钥文件路径
  5.          ssl_certificate_key  ssl/itunic.key;   #证书私钥文件路径
  6.          ssl_session_timeout  5m;  #5分钟session会话保持
  7.          ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  8.          ssl_ciphers  HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
  9.         root /www/web/itunic_com/public_html;
  10.         server_name itunic.com www.itunic.com;
  11.         index  index.html index.php index.htm;
  12.         error_page  400 /errpage/400.html;
  13.         error_page  403 /errpage/403.html;
  14.         error_page  404 /errpage/404.html;
  15.         error_page  503 /errpage/503.html;
  16.         location ~ \.php$ {
  17.                 fastcgi_pass   127.0.0.1:9000;
  18.                 fastcgi_index  index.php;
  19.                 include fcgi.conf;
  20.         }
  21.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
  22.                 expires      1d;
  23.         }
  24.         location ~ .*\.(js|css|html|htm)?$ {
  25.                 expires      12h;
  26.         }
  27.         location ~ /\.ht {
  28.                 deny  all;
  29.         }
  30.         access_log  logs/itunic.com_access.log  wwwlogs;
  31.         error_log  logs/itunic.com_error.log;
  32. }
将http强制转https
  1. server{
  2.       listen 80;
  3.       server_name itunic.com www.itunic.com;
  4.       location / {
  5.           rewrite (.*) https://itunic.com$1 permanent;
  6.       }
  7.    }
  8. server {
  9.         listen 443 ssl;
  10.          ssl_certificate ssl/itunic.crt; #证书公钥文件路径
  11.          ssl_certificate_key  ssl/itunic.key;   #证书私钥文件路径
  12.          ssl_session_timeout  5m;  #5分钟session会话保持
  13.          ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  14.          ssl_ciphers  HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
  15.         root /www/web/itunic_com/public_html;
  16.         server_name itunic.com www.itunic.com;
  17.         index  index.html index.php index.htm;
  18.         error_page  400 /errpage/400.html;
  19.         error_page  403 /errpage/403.html;
  20.         error_page  404 /errpage/404.html;
  21.         error_page  503 /errpage/503.html;
  22.         location ~ \.php$ {
  23.                 fastcgi_pass   127.0.0.1:9000;
  24.                 fastcgi_index  index.php;
  25.                 include fcgi.conf;
  26.         }
  27.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
  28.                 expires      1d;
  29.         }
  30.         location ~ .*\.(js|css|html|htm)?$ {
  31.                 expires      12h;
  32.         }
  33.         location ~ /\.ht {
  34.                 deny  all;
  35.         }
  36.         access_log  logs/itunic.com_access.log  wwwlogs;
  37.         error_log  logs/itunic.com_error.log;
  38. }

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

 

  • Nginx启用https访问已关闭评论
  • 231 views
  • A+
所属分类:未分类
avatar