首页 > 其他分享 >Https基础以及如何配置Https

Https基础以及如何配置Https

时间:2023-06-08 21:00:43浏览次数:40  
标签:浏览器 Https 证书 HTTPS 配置 33iq 如何 key SSL


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

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

二、什么网站需要使用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 的详细介绍请点这里Nginx 的下载地址请点这里


标签:浏览器,Https,证书,HTTPS,配置,33iq,如何,key,SSL
From: https://blog.51cto.com/u_16131207/6443288

相关文章

  • 【Azure 事件中心】Event Hubs如何获取其中存放的历史消息
    问题描述使用AzureEventHub服务,除了正常的生产,消费消息以外,如果想拿到EventHub中存储的历史消息?有什么方法呢? 问题解答获取EventHubs存储的历史消息,首先需要确保消息进入EventHub的时间处于保留期限(RetentionDays)内,因为超过这个期限消息会被删除。如果确认在期限内,在代......
  • 9、软件项目配置管理
    1、在持续交付领域,强调对项目所有的相关产物及其之间的关系都要进行有效配置管理.你的答案A是正确B否正确答案A 2、持续交付更倾向使用基于分支的开发模式.你的答案A是B否正确正确答案B注解:基于主干的开发,所有提交到主干上,提交后自动触发持续集成进行验证和快速......
  • dotgnu如何实现C#的typeof操作符
    typeof对于传统的C/C++程序员来说,反射(reflection)始终是一个新奇(extrotic)的存在,而typeof是语言内置的获取一个类型的方法。当然获得一个特定类型的typeof并不特殊,但是这个typeof的返回值是一个Object,并且是一个Type类型,这就意味着可以通过一个变量来保存任意的类型信息,从而可......
  • Mybatis的配置与简单使用
    Mybatis的开发步骤官网入门手册中说明如下:创建项目加入依赖执行SQLXMLXML配置文件中包含了对MyBatis系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)获得SqlSessionFactoryBuilder获得SqlS......
  • 【Azure 事件中心】Event Hubs如何获取其中存放的历史消息
    问题描述使用AzureEventHub服务,除了正常的生产,消费消息以外,如果想拿到EventHub中存储的历史消息?有什么方法呢? 问题解答获取EventHubs存储的历史消息,首先需要确保消息进入EventHub的时间处于保留期限(RetentionDays)内,因为超过这个期限消息会被删除。如果确认在期限......
  • 各类配置文件(DNS, Firefox,Edge)
    DNS配置腾讯DNS:119.29.29.292402:4e00:: 2402:4e00:1::阿里云:223.5.5.5223.6.6.62400:3200::12400:3200:baba::1黑龙江联通:202.97.224.68202.97.224.69CiscoDNS208.67.222.222208.67.220.2202620:119:35::352620:119:53::53浏览器配置Firefoxabout:confi......
  • InfluxDB:如何进行连接,数学测量
    如果您是InfluxData社区的成员,那么您可能希望在某些时候跨测量执行数学运算。你做了一些谷歌搜索并偶然发现了这个GitHub问题3552并且流下了一滴小小的泪水。好吧,今天我成了好消息的承载者。InfluxData发布了Flux的技术预览,Flux是一种新的查询语言和时间序列数据引擎,它具有跨测量执......
  • 如何在Spark中使用动态数据转置
    DynamicTranspose是Spark中的一个关键转换,因为它需要大量的迭代。本文将为您提供有关如何使用内存中运算符处理此复杂方案的清晰概念。首先,让我们看看我们拥有的源数据: idoc_number,订单ID,idoc_qualifier_org,idoc_org7738,2364,6,07738,2364,7,07738,2364,8,mystr17738,2364,12,myst......
  • 武汉星起航:亚马逊卖家如何通过六月,实现销量增长
    六月是一个重要的销售季节,对于亚马逊卖家来说,高效运营至关重要。下面是武汉星起航整理的一些提高六月销售效果的策略和技巧:优化产品页:确保你的产品页信息完整准确,包括清晰的产品标题、详细的产品描述和吸引人的产品图片。优化关键词,以提高产品在搜索结果中的排名。促销活动:利用六月......
  • 如何使用 Blazor 保存设置到客户端?
    话不多说,直接上代码添加服务类,完整代码比较长,放到文章最后publicinterfaceICookie{publicTaskRemoveValue(stringkey);publicTaskSetValue(stringkey,stringvalue,int?days=null);publicTask<string>GetValue(stringkey,stringdef="......