一、什么是 SSL 证书,什么是 HTTPS
SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:
1、数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听;
2、用户可以通过服务器证书验证他所访问的网站是否真实可靠。

HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层。HTTPS 不同于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为443。

推荐阅读:

基于OpenSSL实现C/S架构中的HTTPS会话 http://www.linuxidc.com/Linux/2013-05/84477.htm

RHEL6.3下配置简单Apache HTTPS  http://www.linuxidc.com/Linux/2013-02/78874.htm

Nginx搭建HTTPS服务器 http://www.linuxidc.com/Linux/2013-01/78263.htm

Linux实现HTTPS方式访问站点 http://www.linuxidc.com/Linux/2012-08/69429.htm

二、什么网站需要使用SSL证书
1、购物交易类网站
不用多说,网上银行、支付宝、Paypal等肯定会全程加密以保护你的信息安全。

2、注册与登陆
一些大的网站,比如电子邮箱,注册会员或者登陆的时候,会专门通过SSL通道,保证密码安全不被窃取。

3、某些在线代理
这个。。。嗯哼,就不说了。

4、装B
比如我……

三、自行颁发不受浏览器信任的SSL证书
为晒晒IQ网颁发证书。ssh登陆到服务器上,终端输入以下命令,使用openssl生成RSA密钥及证书。

# 生成一个RSA密钥
$ openssl genrsa -des3 -out 33iq.key 1024# 拷贝一个不需要输入密码的密钥文件
$ openssl rsa -in 33iq.key -out 33iq_nopass.key# 生成一个证书请求
$ openssl req -new -key 33iq.key -out 33iq.csr# 自己签发证书
$ openssl x509 -req -days 365 -in 33iq.csr -signkey 33iq.key -out 33iq.crt

第3个命令是生成证书请求,会提示输入省份、城市、域名信息等,重要的是,email一定要是你的域名后缀的。这样就有一个 csr 文件了,提交给 ssl 提供商的时候就是这个 csr 文件。当然我这里并没有向证书提供商申请,而是在第4步自己签发了证书。

编辑配置文件nginx.conf,给站点加上HTTPS协议

server {server_name YOUR_DOMAINNAME_HERE;listen 443;ssl on;ssl_certificate /usr/local/nginx/conf/33iq.crt;ssl_certificate_key /usr/local/nginx/conf/33iq_nopass.key;# 若ssl_certificate_key使用33iq.key,则每次启动Nginx服务器都要求输入key的密码。
}

重启Nginx后即可通过https访问网站了。

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

四、受浏览器信任的证书
要获取受浏览器信任的证书,则需要到证书提供商处申请。证书授证中心,又叫做CA机构,为每个使用公开密钥的用户发放一个数字证书。浏览器在默认情况下内置了一些CA机构的证书,使得这些机构颁发的证书受到信任。VeriSign即是一个著名的国外CA机构,工行、建行、招行、支付宝、财付通等网站均使用VeriSign的证书,而网易邮箱等非金融网站采用的是中国互联网信息中心 CNNIC颁发的SSL证书。一般来说,一个证书的价格不菲,以VeriSign的证书为例,价格在每年8000元人民币左右。

据说也有免费的证书可以申请。和VeriSign一样,StartSSL也 是一家CA机构,它的根证书很久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。后 来StartSSL竟然搞定了微软:在升级补丁中,微软更新了通过Windows根证书认证(Windows Root Certificate Program)的厂商清单,并首次将StartCom公司列入了该认证清单。现在,在Windows 7或安装了升级补丁的Windows Vista或Windows XP操作系统中,系统会完全信任由StartCom这类免费数字认证机构认证的数字证书,从而使StartSSL也得到了IE浏览器的支持。(来源及申请步骤)

五、只针对注册、登陆进行https加密处理
既然HTTPS能保证安全,为什么全世界大部分网站都仍旧在使用HTTP呢?使用HTTPS协议,对服务器来说是很大的负载开销。从性能上考虑,我 们无法做到对于每个用户的每个访问请求都进行安全加密(当然,Google这种大神除外)。作为一个普通网站,我们所追求的只是在进行交易、密码登陆等操 作时的安全。通过配置Nginx服务器,可以使用rewrite来做到这一点。

在https server下加入如下配置:

if ($uri !~* "/logging.php$")
{rewrite ^/(.*)$ http://$host/$1 redirect;
}

在http server下加入如下配置:

if ($uri ~* "/logging.php$")
{rewrite ^/(.*)$ https://$host/$1 redirect;
}

这样一来,用户会且只会在访问logging.php的情况下,才会通过https访问。

更新:有一些开发框架会根据 $_SERVER['HTTPS'] 这个 PHP 变量是否为 on 来判断当前的访问请求是否是使用 https。为此我们需要在 Nginx 配置文件中添加一句来设置这个变量。遇到 https 链接重定向后会自动跳到 http 问题的同学可以参考一下。

server {
    ...
    listen 443;
    location \.php$ {
        ...
        include fastcgi_params;
        fastcgi_param HTTPS on; # 多加这一句
    }
}
 
server {
    ...
    listen 80;
    location \.php$ {
        ...
        include fastcgi_params;
    }
}

参考链接:

Nginx下只针对logging.php进行https处理的重写规则 http://www.linuxidc.com/Linux/2013-08/88272.htm

全球可信并且唯一免费的HTTPS(SSL)证书颁发机构:StartSSL  http://www.linuxidc.com/Linux/2011-11/47478.htm

nginx 配置https相关推荐

  1. Nginx配置https,反向代理多实例tomcat的操作记录

    案例说明: 前面一层nginx+Keepalived部署的LB,后端两台web服务器部署了多实例的tomcat,通过https方式部署nginx反向代理tomcat请求.配置一如下: 1)LB层的ng ...

  2. nginx 配置https 并解决重定向后https协议变成了http的问题

    nginx 配置https 并解决重定向后https协议变成了http的问题 参考文章: (1)nginx 配置https 并解决重定向后https协议变成了http的问题 (2)https://ww ...

  3. linux location root访问文件夹404_如何使网站支持https访问?nginx配置https证书

    购买SSL证书 要想使用https访问你的网址,首先得拥有颁发的SSL证书.我使用的是免费版,有效期为一年,过期后再重新申请. 申请SSL证书 购买后,可在搜索框输入证书关键字进入到控制台. 点击证书 ...

  4. 1 阿里云Nginx配置https实现域名访问项目

    第一步:签署第三方可信任的 SSL 证书 证书可以直接在阿里云里面申请免费的ssl证书 登录阿里云账号,在上方搜索栏内搜索ssl,点击ssl证书(应用安全) 来到这个页面后点击购买证书 如图选择免费版 ...

  5. 腾讯云Nginx配置https

    1. 申请ssl证书(腾讯云为例) 登录腾讯云的控制台 https://console.cloud.tencent.com/ssl 申请免费证书 确认申请 如果是腾讯云的域名就选择自动DNS,不是的话 ...

  6. Nginx配置https访问

    在这里我使用的是阿里云ECS,里面提供一年免费SSL证书 1.什么是HTTPS 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol ...

  7. 【微信小程序】 apache配置https,nginx配置https

    1,简介 最近在做一个微信小程序的项目,把我搞得焦头烂额,微信小程序默认必须使用https加密请求,现在配置好了,所以记录一下,如果你也遇到疑惑,希望下面的文章可以帮到你~~! 2,配置https必须 ...

  8. nginx配置https双向验证(ca机构证书+自签证书)

    nginx配置https双向验证 服务端验证(ca机构证书) 客户端验证(服务器自签证书) 本文用的阿里云签发的免费证书实验,下载nginx安装ssl,文件夹有两个文件 这两个文件用于做服务器http ...

  9. Nginx配置HTTPS客户端认证

    Nginx配置HTTPS客户端认证 最近折腾自己个人网站,有一个私人模块,只能自己访问,使用登录授权方式虽然也能达到目的,但每次都要登录,且密码也不一定安全.想起学HTTPS的时,有一个客户端证书的概 ...

  10. nginx 配置 https http

    nginx 配置 https 域名访问 参考文档https://blog.csdn.net/heng_yan/article/details/93874035 1.域名已经分配好 这时需要和项目进行关 ...

最新文章

  1. 利用samba和mount命令 进行文件共享
  2. Kali Linux Web 渗透测试秘籍 翻译完成!
  3. TIOBE Programming Community Index
  4. phpunit 单元测试案例--签到任务
  5. 物料分类账业务配置及操作手册
  6. OpenCASCADE:使用扩展数据交换 XDE之颜色和图层
  7. 怎么重新启动协议服务器,如何启用或禁用服务器网络协议 (SQL Server PowerShell)
  8. Aptana Studio 3 如何汉化,实现简体中文版
  9. 1003. Parity(并查集)
  10. GitHub上整理的一些工具
  11. Markdown快捷键
  12. 粒子群在小车机械手臂的应用
  13. PowerDesigner清理注册表
  14. (完结)Unity游戏开发——新发教你做游戏(七):Animator控制角色动画播放
  15. 淘宝服务器哪个运营商速度快,三大运营商,谁的宽带网速最快?
  16. 为什么敲了许多年的代码,却仍然在原地踏步?| 程序员有话说
  17. Java数字位数不足前面补0的几种办法
  18. 文物3D模型互动展示 | 足不出户,即可领略九龙壁的美轮美奂
  19. 安装完IIS localhost打不开
  20. 一款全新的网页数据采集工具:爬山虎采集器

热门文章

  1. vue拖拽组件,从此解放你的双手
  2. 累积分布函数与概率密度函数的区别
  3. pycharm快速整齐代码格式快捷键
  4. C# 读取EXCEL数据丢失,6万行数据只能读取13866行
  5. FPGA实现4K(分辨率为3840X2160)视频拼接器
  6. 【学习】02 今日头条爬虫-采集和下载关键词“新垣结衣”的图集图片
  7. 用Python写界面
  8. 菜鸟教程C语言—13
  9. TOT(Tree of Thought) | GPT-4+dfs搜索算法提升大模型复杂问题解决能力
  10. 职场中要警惕领导的3种行为