HTTPS安全证书访问连接知识讲解

HTTPS安全证书访问连接知识讲解

01:网络安全涉及的问题:

①. 网络安全问题-数据机密性问题

传输的数据可能会被第三方随时都能看到

②. 网络安全问题-数据完整性问题

传输的数据不能随意让任何人进行修改

③. 网络安全问题-身份验证问题

第一次通讯时,需要确认通讯双方的身份正确

02:网络安全涉及的问题解决:

①. 网络安全问题-数据机密性问题解决

a) 利用普通加密算法解决机密性

利用相应算法,对传输数据(明文数据)进行加密(密文数据);再利用对应算法,将加密数据解密变为 真实数据

优点:实现了数据机密传输,避免了明文传输数据的危险性。

缺点:利用加密算法,将明文改密文,如果第三方获得加密算法,即可将传输密文再次变为明文

b) 利用对称加密算法解决机密性(重要的一种加密方式)

对称加密算法就好比将普通算法的规则手册放入到了保险柜里,只有获取保险柜和保险柜钥匙才能获 取《算法手册》

优点:密钥加密算法计算速度非常快;解决了普通加密算法的安全问题

缺点:加解密过程的安全性完全依赖于密钥,并且对称加密密钥是公开的,当通讯加密对象过多时, 无法解决密钥管理问题。

②. 网络安全问题-数据完整性问题解决

a) 利用单项加密算法(全网备份数据完整性)

根据数据生成特征码(数据指纹信息);接收数据方获取数据信息算出特征码,验证是否与发送过来的 特征码一致

若特征码一致,表示数据完整性没被破坏;若特征码不一致,表示数据已被破坏,直接丢弃

****************************************************************************

扩展说明:

01:不同数据的特征码(数据指纹信息)是不可能一致的

单项加密算法特征

· 数据输入一样,特征码信息输出必然相同

· 雪崩效应,输入的微小改变,将造成输出的巨大改变

· 定长输出,无论源数据多大,但结果都是一样的

· 不可逆的,无法根据数据指纹,还原出原来的数据信息。

****************************************************************************

优点:有效的解决了数据完整性问题

缺点:没有考虑中间人攻击对数据信息的影响

b) 利用单项加密算法(加密特征码)

利用对称加密算法对数据加密的同时,也对特征码进行加密;

接收方拥有和发送方一样的密钥,才可以解密加密后的数据和特征码

而中间人加密的特征码是没有办法让接收方进行解密的,所以接收方获取不了特征码,直接丢弃数据

****************************************************************************

扩展说明:

01:那么对称密钥如何有效的让通讯双方获取呢

需要进行对称密钥协商过程,即通过密钥交换机制(Internet key exchange IKE)

实现密钥交换机制的协议称为diffie-hellman协议

****************************************************************************

③. 网络安全问题-身份验证问题解决

a)利用非对称密钥加密算法(公钥加密算法)

发送方建立私钥和公钥,将公钥发送给接收方,从而实现发送数据方的身份验证

问题:用户第一次访问百度时(还没有获取公钥),有可能会是钓鱼网站

例:让你的母亲验证你的爸爸身份信息,你的母亲就称为证书颁发机构

公钥信息在网站访问过程中,被称为证书(×××)

网络安全问题结论:实现网络安全性,需要解决问题的顺序为

1. 解决身份验证问题

2. 解决数据完整性问题

3. 解决数据机密性问题

1.2 网络安全证书知识

03:网络安全证书由来:

根据上述结论可知,网络安全性最首先要解决的就是身份验证问题;

而解决身份验证问题,最主要的方式就是借助私钥和公钥

而最主要的公钥信息获取就变得尤为重要;利用第三方公正者,公正公钥信息

目前标准的证书存储格式是x509,还有其他的证书格式,需要包含的内容为:

证书==比喻为营业执照

? 公钥信息,以及证书过期时间

? 证书的合法拥有人信息

? 证书该如何被使用(不用关注)

? CA颁发机构信息

? CA签名的校验码

1.4  OpenSSL软件详细说明

获取OpenSSL软件的版本信息:

openssl version      <- 查看openssl版本信息

获取OpenSSL配置文件信息:

/etc/pki/tls/openssl.cnf      <- openssl配置文件,主要用于配置成私有ca时进行使用

说明:基本上openssl配置文件不需要运维过多修改配置

#举例说明,加密一个文件

# openssl enc -des3 -salt -a -in inittab -out initab.des3  <- 输入密码后即加密成功

# openssl enc -des3 -d -salt -a -in initab.des3 -out inittab <- 输入密钥后即解密成功

说明:其中命令中的salt参数,主要用于避免密码加密后,对密钥串的反推

#生成和用户一样的密码串

openssl passwd -1     <- 采用md5加密用户密码串,将明文密码转换为密文

说明:企业中实现修改数据库中用户密码信息,实现用户密码信息重置

#生成伪随机数方法

openssl rand -base64 45    <- 给出一个任意的数字,就会生成任意的随机数

md5sum 1.txt

1.5 OpenSSL软件建立私有CA(证书颁发机构)

实现HTTPS:

1) 生成私钥(出生证明)和请求证书文件(户口本)             --- 运维需要完成

2)根据请求证书文件信息,证书颁发机构生成证书文件(×××) --- 证书颁发机构来完成

3)企业网站利用证书,实现用户安全认证访问                   --- 运维需要完成

模拟证书颁发机构颁发程序:

01)生成私钥文件信息方法:

openssl genrsa 2048 >server.key   <- 创建私钥信息,并指定私钥的长度为2048,并将生成的私钥信息保存在一个文件中

openssl genrsa -out server.key 2048  <- 将私钥信息直接进行保存,加密长度一定要放在输出文件后面

    (umask 077;openssl genrsa -out server1024.key 1024)  <- 利用小括号,实现子shell功能,临时修改umask,使之创建的私钥文件权限为600

02) 生成自签署的证书

[[email protected] ~]# openssl req -new -x509 -key server1024.key -out server.crt -days 365

req  <- 用于创建新的证书

new  <- 表示创建的是新的证书

x509 <- 表示定义证书的格式为标准格式

key  <- 表示调用的私钥文件信息

out  <- 表示输出证书文件信息

days <- 表示证书的有效期

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

----- 以下默认参数可在/etc/pki/tls/openssl.cnf修改

Country Name (2 letter code) [XX]:CN     <- 定义生成证书的国家

State or Province Name (full name) []:BJ    <- 定义生成证书的省份

Locality Name (eg, city) [Default City]:BJ    <- 定义生成证书的城市

Organization Name (eg, company) [Default Company Ltd]:oldboy  <- 定义生成证书的组织

Organizational Unit Name (eg, section) []:it      <- 定义生成证书的职能部门

Common Name (eg, your name or your server's hostname) []:oldboy.com.cn    <- 定义主机服务器名称

说明:此输出信息非常重要,客户端在获取证书前,会利用主机名与相应服务器之间建立连接,然后获得证书

Email Address []:

#openssl x509 -text -in server.crt                  --- 用于查看证书中的信息

# CA自签发证书实际创建过程

cd /etc/pki/CA/private/        <- 进入到私钥保存目录中

(umask 077;openssl genrsa -out ./cakey.pem 2048)  <- 创建一个ca私钥文件

cd /etc/pki/CA          <- 进入到CA自签发保存目录中

openssl req -new -x509 -key private/cakey.pem -out cacert.pem  <- 生成自签发证书

说明:由于配置文件中定义了一些证书信息,所以默认输入即可

1.6 利用证书实现HTTPS访问Nginx服务

1) 安装opessl软件

# yum install openssl

# yum install openssl-devel

2)进行证书目录规划

# cd /application/nginx/conf/   <- 编译安装Nginx的程序目录

# mkdir key

# cd key/

3) 创建私钥文件

创建服务器私钥,命令会让你输入一个口令: 这里输入的是oldboy

openssl genrsa -des3 -out server.key 1024


Generating RSA private key, 1024 bit long modulus

......................++++++

...................++++++

e is 65537 (0x10001)

Enter pass phrase for server.key:

Verifying - Enter pass phrase for server.key:

4)创建请求证书

创建签名请求的证书(CSR):

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

扩展说明:去掉私钥文件口令密码信息

cp server.key server.key.org

openssl rsa -in server.key.org -out server.key <- 生成无口令的私钥

5)配置Nginx服务使之支持证书访问

修改Nginx配置文件,让其包含新标记的证书和私钥:

server {

server_name YOUR_DOMAINNAME_HERE;

listen 443;

ssl on;

ssl_certificate /application/nginx/conf/key/server.crt;

ssl_certificate_key /application/nginx/conf/key/server.key;

}

6)nginx ssl 模块指令总结:

http://nginx.org/en/docs/http/ngx_http_ssl_module.html

1.7 单台web服务器实现http访问自动跳转到https:

方法一:利用地址重写功能rewrite

说明:在https配置server基础上再添加http跳转server

[[email protected] keys]# cat  /application/nginx/conf/extra/blog.conf

server {

listen  80; #默认用户访问的是http,80端口,让它跳转为https

server_name blog.etiantian.org;

rewrite ^(.*)$  https://$host$1 permanent;

}

server {

listen       443;

ssl on;

ssl_certificate /server/keys/server.crt;

ssl_certificate_key /server/keys/server1024.key;

server_name  blog.etiantian.org;

root   html/blog;

index  index.php index.html index.htm;

location ~ .*\.(php|php5)?$ {

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

include        fastcgi.conf;

}

}

方法二:error_page 497 利用状态码跳转到https

说明:497为内置错误码,当访问http无法处理,需要利用https处理时

[[email protected] keys]# vim  /application/nginx/conf/extra/blog.conf

server {

listen       443;

listen       80;

ssl on;

ssl_certificate /server/keys/server.crt;

ssl_certificate_key /server/keys/server1024.key;

server_name  blog.george.org;

root   html/blog;

index  index.php index.html index.htm;

location ~ .*\.(php|php5)?$ {

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

include        fastcgi.conf;

}

error_page 497  https://$host$uri;

}

方法三:利用返回状态码实现跳转访问

说明:在https配置server基础上再添加http跳转server

server {

listen  80;

server_name www.etiantian.org;

return 301 https://$host$uri;

}

1.8 利用反向代理服务器实现访问https自动跳转为https

vim /applicaiton/nginx/conf/nginx.conf

第一个里程碑:修改地址池信息

upstream kai {

server 10.0.0.7:443;

server 10.0.0.8:443;

server 10.0.0.9:443;

}

第二个里程碑:修改地址池调用信息

server {

listen       443;

server_name  www.george.com;

ssl on;

ssl_certificate /application/nginx/conf/key/server.crt;

ssl_certificate_key /application/nginx/conf/key/server.key;

location / {

proxy_pass https://kai;

}

}

第三个里程碑:定义http到https跳转配置信息

server {

listen       80;

server_name  www.george.com;

rewrite ^(.*)$  https://$host$1 permanent;

}

原文地址:http://blog.51cto.com/13055758/2082607

时间: 2024-08-24 23:38:49

HTTPS安全证书访问连接知识讲解的相关文章

HTTPS安全证书访问连接实践配置

01:网络安全涉及的问题: ①. 网络安全问题-数据机密性问题传输的数据可能会被第三方随时都能看到 ②. 网络安全问题-数据完整性问题传输的数据不能随意让任何人进行修改 ③. 网络安全问题-身份验证问题第一次通讯时,需要确认通讯双方的身份正确 02:网络安全涉及的问题: ①. 网络安全问题-数据机密性问题解决a) 利用普通加密算法解决机密性利用相应算法,对传输数据(明文数据)进行加密(密文数据):再利用对应算法,将加密数据解密变为真实数据优点:实现了数据机密传输,避免了明文传输数据的危险性.缺点

十二.HTTPS网站安全访问实践

期中集群架构-第十二章-HTTPS安全证书访问连接实践配置========================================= 01:网络安全涉及的问题: ①. 网络安全问题-数据机密性问题 传输的数据可能会被第三方随时都能看到 ②. 网络安全问题-数据完整性问题 传输的数据不能随意让任何人进行修改 ③. 网络安全问题-身份验证问题 第一次通讯时,需要确认通讯双方的身份正确 02:网络安全涉及的问题: ①. 网络安全问题-数据机密性问题解决 a) 利用普通加密算法解决机密性 利用相

HTTPS的证书未经权威机构认证的情况下,访问HTTPS站点的两种方法

注意一下文章中提到的jsse在jdk1.4以后已经集成了,不必纠结. 摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问.但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从而不能访问HTTPS站点.本文在简要介绍JSSE的基础上提出了两种解决该问题的方法. 引言 过去的十几年,网络上已经积累了大量的Web应用.如今,无论是整合原有的Web应用系统,还是进行新的Web开发,都要求通过编程来访问某些Web页面.传统的方法是使

nginx证书制作以及配置https并设置访问http自动跳转https(反向代理转发jboss)

nginx证书制作以及配置https并设置访问http自动跳转https 默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这个文件名类似libssl-dev. 生成证书 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $

HTTPS-HSTS协议(强制客户端使用HTTPS与服务器创建连接)

HSTS(HTTP Strict Transport Security)国际互联网工程组织IETE正在推行一种新的Web安全协议 HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接.其实HSTS的最大作用是防止302 HTTP劫持(中间人).HSTS的缺点是浏览器支持率不高,另外配置HSTS后HTTPS很难实时降级成HTTP. 采用HSTS协议的网站将保证浏览器始终连接到该网站的HTTPS加密版本,不需要用户手动在URL地址栏中输入加密地址.该协议将帮助网站采用全局加密,用户看

为Jenkins增加ssl(https)的访问支持(Windows/Linux)

前言: 增加ssl(https)的访问可以为部署在公网下的jenkins提供更安全的问题,最明显的好处应该是登录和jenkins-ci.jar的调用. 比如jenkins-ci.jar的调用,一般在windows下通过明文账号密码的传输请求是非常不安全的:有关windows配置和实践参考以下文章: http://www.cnblogs.com/EasonJim/p/6086018.html(这篇是关于windows的配置方法) http://www.cnblogs.com/EasonJim/p/

基于https搭建加密访问站点

一.基础知识 httpd: ssl ssl模块 单独成包 ssl会话基于IP地址创建,所以,每一个IP仅创建一个SSL会话: ssl握手要完成的工作: 交换协议版本号 选择双方都支持的加密方式 客户端对服务器端实现身份验正 密钥交换 https协议: 基于SSL二进制编码, 443/tcp openssl s_client 客户端验正服务器端证书: 有效性检测:证书是否仍然在有效期内 CA的可信度检测: 证书的完整性检测: 持有者的身份检测 二.Openssl知识的回顾 Cd /etc/pki/

https认证证书申请步骤 、https和http的主要区别 HTTPS认证申请证书

随着国内搜索引擎巨头百度启用全站https加密服务,全国掀起了网站https加密浪潮.越来越多的站点希望通过部署https证书来解决"第三方"对用户隐私的嗅探和劫持.因此,https加密链接作为互联网站点应用必然趋势,申请证书加密也变得刻不容缓,那么站长们该如何申请https证书呢?下面SSL盾小编为大家详细讲解. HTTPS证书申请 https和http的主要区别: 一.https协议需要到ca机构申请ssl证书(如Gworg),另外Gworg还提供2年续费HTTPS增加3个月,提供

如何部署HTTPS 申请证书 安装证书

目标: 让自己的网站,yyii.info用https://yyii.info访问, 条件: 1.用的是阿里云服务器, https://promotion.aliyun.com/ntms/act/qwbk.html   330元/年.40G. 用oneinstack一键安装的.https://oneinstack.com/ 2.在阿里云申请一个免费的证书.在安全(云盾)栏目->证书服务. 申请后,大约1天,会提示下载相关文件,上传到网站下.然后再等待自动审核通过. 之后,就能下载证书. 下载来有4