ssl简介与openssl的使用
SSL证书: 是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。
ssl也是传输协议。
基于ssl协议开发的一款软件叫openssl
linux系统默认已经安装
基本功能
非对称加密
openssl
配置文件:
/etc/pki/tls/openssl.conf
dir=/etc/pki/CA <<<指定CA工作目录
certs=$dir/certs <<<指定撤销存储库的位置
crl_dir=$dir/crl <<<证书撤销列表
database=$dir/index.txt <<<已生成的证书信息的索引文件(此文件默认不存在,需要自己创建)
new_certs_dir=$dir/newcerts <<<新签发的证书的保存位置
certificate=$dir/cacert.pem <<<CA自己的证书名称
serial = $dir/serial <<<记录证书的序号,默认可以从1开始(此文件默认不存在,内容也不能为空,需要手动往里面添加一个数字)
crlnumber = $dir/crlnumber <<<吊销的证书序列号
crl = $dir/crl.pem<<< 吊销的证书的列表
private_key = $dir/private/cakey.pem <<< CA自己的私钥的位置
RANDFILE = $dir/private/.rand <<<随机数文件位置
x509_extensions = usr_cert <<<扩展项
创建CA
1.创建不存在的文件
index,txt
serial
2.给自己(CA)创建证书
实现步骤
1.创建那些不存在的文件
- [root@ ~]# touch /etc/pki/CA/index.txt
- [root@ ~]# echo "">/etc/pki/CA/serial
- [root@~]# cat/etc/pki/CA/serial
- [root@~]# cat /etc/pki/CA/serial
2.给CA创建证书
(1)生成CA的私钥文件
- [root@ ~]# openssl genrsa -out /etc/pki/CA/private/cakey.pem 1024 <<<数字越大加密强度越大,然而小消耗系统资源也越多
- Generating RSA private key, bit long modulus
- .......++++++
- ....++++++
- e is (0x10001)
(2)从私钥文件中抽取公钥,并制作证书
-new:申请新的证书
-x509:证书版本号,509是给CA自己创建证书的准用选项
-key:指定私钥文件
-days:指定证书有效期
- [root@~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days -out /etc/pki/CA/cacert.pem
- 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.
- -----
- Country Name ( letter code) [XX]:CN <<<国家名字,只能用两个字母表示
- State or Province Name (full name) []:henan <<<所在省
- Locality Name (eg, city) [Default City]:zhengzhou <<< 所在市
- Organization Name (eg, company) [Default Company Ltd]:baidu 组织名(公司名)
- Organizational Unit Name (eg, section) []:nuomi <<<组织单位名
- Common Name (eg, your name or your server's hostname) []:www.baidu.com <<<公司网站域名(一定不能错,否则证书无效)
- Email Address []:@.com <<< 邮箱地址
给其他主机制作颁发证书的流程
1.客户端生成一个证书请求文件
2.客户端将证书申请文件发送到CA请求证书
3.检查证书请求文件中的信息的真伪,如果为真,则制作证书并颁发个客户端
实现步骤(以给apache颁发证书为例,服务器端10.220.5.67,客户端10.220.5.63)
1.给apache创建私钥文件(用于存放私钥,公钥以及颁发的证书)
(1)生成客户端私钥
- [root@apache ~]# mkdir /etc/httpd/ssl
- [root@apache ~]# openssl genrsa -out /etc/httpd/ssl/httpd.key
- Generating RSA private key, bit long modulus
- ........................................................++++++
- ........................................++++++
- e is (0x10001)
(2)生成请求文件
[root@apache ~]# openssl req -new -key /etc/httpd/ssl/httpd.key -days -out /etc/httpd/ssl/httpd.req
- 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.
- -----
- Country Name ( letter code) [XX]:CN
- State or Province Name (full name) []:henan
- Locality Name (eg, city) [Default City]:zhengzhou
- Organization Name (eg, company) [Default Company Ltd]:baidu
- Organizational Unit Name (eg, section) []:nuomi
- Common Name (eg, your name or your server's hostname) []:www.baidu.com
- Email Address []:@.com
Please enter the following 'extra' attributesto be sent with your certificate request
A challenge password []: <<<对生成的证书进行加密,这里省略
An optional company name []:
(3)查看生成的文件
- [root@apache ~]# ls /etc/httpd/ssl/
- httpd.key httpd.req<<此文件就是生成的请求文件
(4)将请求文件发送到服务器端
- [root@apache ~]# scp /etc/httpd/ssl/httpd.req root@10.220.5.67:/tmp
- The authenticity of host '10.220.5.67 (10.220.5.67)' can't be established.
- ECDSA key fingerprint is SHA256:Fi2Rlnl2uce8/7OiRG1JReD158iHVydpZ+bW+IgoutY.
- ECDSA key fingerprint is MD5:d0:96:1f:a9:83:fc:0a:bf:1f:20:1b:ec:4d:79:6e:7e.
- Are you sure you want to continue connecting (yes/no)? yes
- Warning: Permanently added '10.220.5.67' (ECDSA) to the list of known hosts.
- root@10.220.5.67's password:
- httpd.req 100% 700 321.8KB/s 00:00
2.服务端检查请求文件中的信息的真实性(在服务端操作)
- [root@e ~]# openssl ca -in /tmp/httpd.req -out /tmp/httpd.crt -days
- Using configuration from /etc/pki/tls/openssl.cnf
- Check that the request matches the signature
- Signature ok
- Certificate Details:
- Serial Number: (0x1)
- Validity
- Not Before: Nov :: GMT
- Not After : Jan :: GMT
- Subject:
- countryName = CN
- stateOrProvinceName = henan
- organizationName = baidu
- organizationalUnitName = nuomi
- commonName = www.baidu.com
- emailAddress = @.com
- X509v3 extensions:
- X509v3 Basic Constraints:
- CA:FALSE
- Netscape Comment:
- OpenSSL Generated Certificate
- X509v3 Subject Key Identifier:
- :DA:6B::2B:D1:3D:AD:::::6D:9D:A6:B0:AB:7B::
- X509v3 Authority Key Identifier:
- keyid::EF::9C::CD:D1::C2:FC:9E:C4::::9C:BB::0C:
- Certificate is to be certified until Jan :: GMT ( days)
- Sign the certificate? [y/n]:y
- out of certificate requests certified, commit? [y/n]y
- Write out database with new entries
- Data Base Updated
2)将生成的证书发送给客户端
- [root@ ~]# scp /tmp/httpd.crt root@10.220.5.63:/etc/httpd/ssl
- httpd.crt % .1MB/s :
ssl简介与openssl的使用的更多相关文章
- SSL及使用openssl实现CA
TLS如何实现各种功能?数据如何加密在网络上传输? 网景(Netscape)公司在应用层和传输层加入了半层,把这个半层称之为SSL,SSL不是软件,可以理解是一个库,当http交给tcp层之前先通过s ...
- ssl协议,openssl,创建私有CA
SSL是Security Socket Layer:安全的套接字层 他介于HTTP和TCP协议层之间 SSL是Netscape公司开发的,属于个人 TLS是标准委员会制定的 OpenSSL是SSL的开 ...
- SSL简介
注:本文基于互联网内容整合而成,非原创.参考文章参加[7.参考资料].引用时请附上原文地址. SSL(Secure Socket Layer,安全套接字层)是位于可靠的面向连接的网络层协议和应用层协议 ...
- Cross platform GUI for creating SSL certs with OpenSSL
Someone said: from : https://micksmix.wordpress.com/2012/08/09/xca-cross-platform-gui-for-creating-s ...
- 实战Tomcat配置SSL,使用openssl制作证书
制作证书以及Tomcat配置 搭建openssl环境,下载openssl并设置环境变量方便命令行的使用: 修改openssl配置文件,设置dir目录,如设置dir=e:/temp/openssl_ca ...
- 数字证书认证这点事, SSL/TLS,OpenSSL
1.概念 数字证书 HTTPS请求时,Server发给浏览器的认证数据,用私钥签名,并且告诉浏览器公钥,利用公钥解密签名,确认Server身份. 证书还会指明相应的CA,CA能确认证书是否真的是CA颁 ...
- SSL - 简介
一.密码技术 要了解SSL协议,首先要了解:加密算法.消息摘要算法(又称为哈希算法Hash),数字签名等概念.这些技术每个都可以写出一整本的书,它们结合在一起,提供了保密性.完整性和身份验证的功能. ...
- OpenSSL编写SSL,TLS程序***
一.简介 SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版.TLS(Transport Layer Security)是 ...
- 面试题-------SSL协议简介
SSL协议简介 SSL简介 Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之 ...
随机推荐
- 【原创】Bug管理操作规范个人经验总结
1. 禅道简介 禅道是一个基于“敏捷开发”模式的软件开发全生命周期管理软件,在国内的软件开发公司里占据最大的份额,从大公司到小公司,都能适用. 笔者使用禅道多年,根据自己的经验总结了一套Bug管理的方 ...
- java构造函数和初始化
1.如果构造函数的第一条语句是一条普通的语句.也就是说,不是对this()或super()的调用,那么java会插入一个隐式的super()调用,从而调用超类的默认构造函数.从该调用返回时,Java将 ...
- 关于极限精简版系统(RAMOS专用)的说明(FAQ)
关于极限精简版系统(RAMOS专用)的说明(FAQ) 对RAMOS-er来说,系统精简唯一的目的就是RAMOS,精简只为RAMOS而存在.我更喜欢听到大家把精简系统用于RAMOS,这里才应该是他的主战 ...
- Linux系统编程——fcntl
fcntl可实现对指定文件描述符的各种操作,其函数原型如下: int fcntl(int fd, int cmd, ... /* arg */ ); 头文件 #include <unistd.h ...
- qcom,msm8996-pinctrl.txt
Qualcomm Technologies, Inc. MSM8996 TLMM block This binding describes the Top Level Mode Multiplexer ...
- 3、redis使用场景
现代高并发复杂系统面临的挑战 现代系统随着功能的复杂化,各种各样需求层出不穷,面对愈加复杂话的业务系统.越来越庞大的用户群体,以及用户对体验的要求越来越高,性能就变得更加重要. 抛开代码逻辑.服务器性 ...
- Galaxy2D Game Engine 4.2
Galaxy2D Game Engine 4.2 开发版 下载地址 D3DRender注意:1.下载后的压缩包请使用WinRar5.0打开.2.开发版包含了现在正在开发中的Galaxy2D游戏引擎 ...
- gradle项目
gradle构建web项目 0.安装gradle http://services.gradle.org/distributions/ 下载对应版本:gradle-5.2.1-bin.zip 解压到自定 ...
- SSD 的介绍 -------转载
本文转载自: http://www.sohu.com/a/258190629_494938 背景 SSD(Solid-State Drive)是目前正处于鼎盛时期的存储设备.相较于传统的硬盘存储器 ...
- 使用nodeValue获取值与a标签默认跳转的冲突问题
今天看javascript DOM编程艺术(第2版)发现这样一个例子: 效果图: 完整代码: <!DOCTYPE html> <html lang="en"> ...