https网络安全协议

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

本节索引

一、https协议介绍

二、实验:实现https

三、http重定向https

四、云主机实现免费的https

封面

一、https协议介绍

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的

HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详

细内容就需要SSL。 https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密

身份验证层(在HTTP与TCP之间)。

 

发展历史:

这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份

验证与加密通讯方法。现在它被广泛用于网络安全敏感的通讯,例如交易支付方面。

 

主要作用:

1、建立一个信息安全通道,来保证数据传输的安全;

2.、确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站

认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询 [2]  。

 

HTTPS与HTTP的区别:

1、https协议需要到ca申请证书,一般免费证书很少,需要交费。

2、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证

的网络协议,比http协议安全。

 

SSL会话的简化过程:

(1) 客户端发送可供选择的加密方式,并向服务器请求证书

(2) 服务器端发送证书以及选定的加密方式给客户端

(3) 客户端取得证书并进行证书验证

如果信任给其发证书的CA

(a) 验证证书来源的合法性;用CA的公钥解密证书上数字签名

(b) 验证证书的内容的合法性:完整性验证

(c) 检查证书的有效期限

(d) 检查证书是否被吊销

(e) 证书中拥有者的名字,与访问的目标主机要一致

(4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换

(5) 服务用此密钥加密用户请求的资源,响应给客户端

注意:SSL是基于IP地址实现,单IP的主机仅可以使用一个https虚拟主机

 

 

二、实验:实现https

前期准备:

两台虚拟机

CA:       CentOS 7.4      IP:192.168.30.10   

户:CentOS 6.9      IP:192.168.30.11

实验预期:

CA服务器为客户端颁发证书,使其能够实现https访问

具体步骤:

CA端:

生成私钥

(umask 077;openssl genrsa -out etc/pki/CA/private/cakey.pem 2048)

自签名证书

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650

交互式填写

国家:CN

省份:beijing

城市:beijing

公司名称:wxlinux

部门:opt

Common name:wxlinux.com

 

Client端:

生成客户端私钥

(umask 066;openssl genrsa -out httpd.key 1024)

生成证书申请

openssl req -new -key httpd.key -out httpd.csr

交互式填写

国家:CN

省份:beijing

城市:beijing

公司名称:wxlinux

部门:opt

Common name:http.wxlinux.com

注:国家,省份,公司必须一致才能申请成功

将证书申请发送到CA

scp httpd.csr 192.168.30.10:/root/

 

CA端:

建立已颁发证书信息列表文件;V:生效;R:吊销;

touch /etc/pki/CA/index.txt

建立证书序列号

echo 0F > /etc/pki/CA/serial     

颁发证书

openssl ca -in httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 730

 

将证书及CA自授权证书发送到客户端:

scp /etc/pki/CA/certs/httpd.crt 192.168.30.11:/root/

scp /etc/pki/CA/cacert.pem 192.168.30.11:/root/

 

Client端:

安装加密模块

yum install mod_ssl –y

rpm -ql mod_ssl

修改配置文件其中此三行

vim /etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt

SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key

SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem

重启httpd服务

service httpd restart

此时打开浏览器已能够正常访问https://192.168.30.11/

显示不安全的页面,这是由于证书未添加到浏览器信任造成的

2

将CA自签名证书导入到浏览器即可安全访问

 

 

三、http重定向https

当我们区域https协议后,就出现了一个问题,此时http与https是可以同时被访问的,那么当用户用http访

问网站时,还是有安全隐患的,如何解决呢?我们只需要将http重定向到https即可

实现http请求转发至https的URL方法如下:

方法一:重定向

备注:有安全隐患,每次请求还会先走http协议

Redirect [status] URL-path URL

status状态:

permanent:  永久301

Temp:        临时302

示例:

Redirect temp / https://www.magedu.com/

 

 

方法二:HSTS

备注:仅第一次访问会走http协议,建议使用此种方法

HSTS:HTTP Strict Transport Security

服务器端配置支持HSTS后,会在给浏览器返回的HTTP首部中携带HSTS字段。浏览

器获取到该信息后,会将所有HTTP访问请求在内部做307跳转到HTTPS。而无需任何

网络过程

 

HSTS preload list

作用:使第一次访问也走https协议

是Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访

问时,会自动转换成HTTPS。Firefox、Safari、Edge浏览器也会采用这个列表

 

实现HSTS示例:

vim /etc/httpd/conf/httpd.conf

Header always set Strict-Transport-Security “max-age=31536000”

RewriteEngine on

RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=302]

 

curl -I  www.taobao.com

Strict-Transport-Security: max-age=31536000

 

四、云主机实现免费的https

现在许多云服务厂商都提供了免费的域名型加密SSL证书,仅对域名所有权进行验证,快速颁发,较好保

护网站数据安全,适合个人,小微企业应用。

本次就以在腾讯云申请免费SSL证书为例:

 

腾讯云官方网站:https://cloud.tencent.com

 

1登录进入页面后点击上方+号,添加SSL证书管理

3

2点击申请证书,显示证书颁发机构为亚洲诚信(TRUSTASIA),证书有效期为一年

4

3.点击确定后,会要求输入域名,申请邮箱等信息,按需填写即可

5

4.接下来会进行域名身份验证,这里我们选择选择手动DNS验证6

5.点击确认申请,生成解析记录

7

接下来我们需要等待10分钟左右证书审核通过

 

6.回到我们的域名DNS管理页,添加一条TXT/SPF的解析

HOSTNAME填写腾讯云解析记录中的主机记录

TEXT填写记录值

8

7.证书申请完成后,就可以点击下载了

9

8.根据自己web服务类型,进行后续配置

腾讯云官方证书安装方法指引文档:https://cloud.tencent.com/document/product/400/4143

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/101350

(1)
wangxczwangxcz
上一篇 2018-06-22 17:06
下一篇 2018-06-23 00:46

相关推荐

  • N31-第二周作业—文件的管理

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │   └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │   ├── bin
    │   └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    2018-07-05
  • 正则表达式用户管理

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod 700 /home/tuser1 -R [root@localhost ~…

    2018-06-04
  • linux通配符和正则表达式

    通配符、正则表达式

    2018-04-17
  • Linux 命令

    screen 创建会话

    2018-04-07
  • HAProxy反向代理

    HAProxy的简单配置实现反向代理服务器的功能:(有自动的健康性检查的功能) 程序环境:主程序:/usr/sbin/haproxy主配置文件:/etc/haproxy/haproxy.cfgUnit file:/usr/lib/systemd/system/haproxy.service 官网文档: http://cbonte.github.io/hapr…

    2018-07-09
  • 追风筝的人

    IO重定向 管道 tr 用户管理 组管理 文件权限管理 文本处理工具
    Grep和正则表达式 扩展的正则表达式和VIM

    Linux笔记 2018-04-08