如何通过Openssl实现私有CA,并为HTTP服务提供TLS/SLL安全机制
来源:互联网 发布:java中的io和nio 编辑:程序博客网 时间:2024/06/03 22:04
- OpenSSL:SSL的开源实现
- libcrypto:通用加密库,提供了各种加密函数
- libssl:TLS/SSL协议的实现,基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库
- openssl:多用途的命令行工具;能够实现私有证书颁发机构;即在公司内部实现身份的验证;
- 1、数据的机密性:通过对称加密算法实现数据的机密性。
- 2、数据的完整性:通过单向加密算法保证数据的完整性。
- 3、身份的安全验证:提供数据发送者的身份。
- 注:前提服务器端在本地通过非对称加密算法生成一对密钥,并将公钥信息发送给CA证书颁发机构,CA给服务器端颁发数字证书,并将证书发送至服务器端。
- SSL会话建立过程:
- 第一步:客户端向服务器端建立连接请求(TCP/IP)
- 第二步:当TCP/IP建立完成后,客户端和服务器之间协商使用哪种加密算法,如(TSLv1/SSLv2/SSLv3)。
- 第三步:协商完成后,服务器将公钥发送给客户端,客户端接收公钥信息。
- 第四步:客户端到CA证书颁发机构下载CA公钥信息,并对服务器端发送的证书做验证。
- 第五步:随后,客户端在本地通过对称加密算法生成密钥,然后用服务器端发送的公钥进行对这段密钥进行加密,发送至服务器端,其保证了数据的机密性。
- 第六步:服务器用自己的私钥对这段数据进行解密,得到密钥,然后将客户端的请求数据进行加密发送给客户端。
- 第七步:客户端接到响应,并用密钥进行机密,得到数据。
- 第八步:通信结束后,断开会话通道(TCP/IP)
- OpenSSL:SSL的开源实现
- libcrypto:通用加密库,提供了各种加密函数
- libssl:TLS/SSL协议的实现,基于会话的、实现了身份认证、数据机密性和会话完整性的TLS/SSL库
- openssl:多用途的命令行工具;能够实现私有证书颁发机构;即在公司内部实现身份的验证;
- openssl:
- genrsa:通过RSA算法,生成密钥(私钥和公钥)
- req:申请和生成证书
- -new:生成新的证书
- -x509:互联网常用的一种标准
- -in:证书的位置(签署证书及证书请求常常用到)
- -out:证书的存放位置
- -days:证书的有效期限
- # cd /etc/pki/CA
- # (umask 077; openssl genrsa -out private/cakey.pem 2048) ##创建私钥,并将权限改为600
- # openssl req -new -x509 -key -in private/cakey.pem -out cacert.pem -days 365 ##生成自签证书
- # cd /etc/pki/CA
- # mkdir certs crl newcerts ##相关证书存放目录
- # touch index.txt ##相关证书信息
- # echo "01" > serial ##颁发证书的序列
- # yum install httpd mod_ssl -y
- # vim /etc/httpd/httpd.conf #最后一行添加如下内容,并注释DocumentRoot "/var/www/html"行,大约在281行
- <VirtualHost 172.16.88.1:80>
- DocumentRoot "/www/example.com"
- ServerName www.example.com
- </VirtualHost>
- # service httpd restart && chkconfig httpd on
- # echo "<h1>Test Hettp Server</h1>" > /var/www/html/index.html #测试页
- # mkdir /etc/httpd/ssl
- # cd /etc/httpd/ssl
- #(umask 077; openssl genrsa -out httpd.key 1024)
- # openssl req -new -key -in httpd.key -out httpd.csr -days 3650
- # cd /etc/httpd/ssl # openssl ca -in httpd.csr -out httpd.crt -days 3650
- # vim /etc/httpd/conf.d/ssl.conf
- 在81行后面添加如下内容:
- <VirtualHost 172.16.88.1:443>
- DocumentRoot "/www/example.com"
- ServerName www.example.com
- 然后在114和121行更改下内容:
- 114 SSLCertificateFile /etc/httpd/ssl/httpd.crt
- 121 SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
阅读全文
0 0
- 如何通过Openssl实现私有CA,并为HTTP服务提供TLS/SLL安全机制
- 图解openssl实现私有CA
- 图解openssl实现私有CA
- openssl私有CA实现及私有证书签署
- OpenSSL创建私有CA
- 用Openssl建立私有CA并颁发证书
- 用Openssl建立私有CA并颁发证书
- 用Openssl建立私有CA并颁发证书
- linux安全和加密之SSL\TLS协议、CA、openssl的概述和使用
- 创建私有CA的过程并实现https连接
- ssl协议、openssl以及创建私有CA
- ssl协议,openssl,创建私有CA
- 使用 OpenSSL API 进行安全编程,第 3 部分: 提供安全服务 OpenSSL 提供必要的能力
- 如何通过Java实现生成excel并通过流的方式返回,提供下载!!
- 使用 OpenSSL API 进行安全编程,第 3 部分: 提供安全--服务
- 使用 OpenSSL API 进行安全编程,第 3 部分: 提供安全服务
- 使用 OpenSSL API 进行安全编程,第 3 部分: 提供安全服务
- 使用 OpenSSL API 进行安全编程,第 3 部分: 提供安全服务
- 二叉树
- hibernate:unexpect token:
- 学习ArrayList 和 LinkedList小记【1】
- 谷歌插件编写
- Scala——数组
- 如何通过Openssl实现私有CA,并为HTTP服务提供TLS/SLL安全机制
- Linux下tomcat安装(tar.gz版)
- 解决debian服务器中文显示乱码问题
- 关于怎样使用CSDN-markdown编辑器
- html5阻止video的默认全屏播放
- C++构造函数初始化列表
- GNU-GCC编译选项
- L1-009. N个数求和
- Effective Java--序列化--你以为只要实现Serializable接口就行了吗