理解openssl协议:x509、crt、cer、key、csr、ssl、tls 这些都是什么鬼? 如何给自己网站颁发证书?
今天尝试在mac机上搭建docker registry私有仓库时,杯具的发现最新的registry出于安全考虑,强制使用ssl认证,于是又详细了解linux/mac上openssl的使用方法,接触了一堆新英文缩写,整理于下:
TLS:传输层安全协议 Transport Layer Security的缩写
SSL:安全套接字层 Secure Socket Layer的缩写
TLS与SSL对于不是专业搞安全的开发人员来讲,可以认为是差不多的,这二者是并列关系,详细差异见 http://kb.cnblogs.com/page/197396/
KEY 通常指私钥。
CSR 是Certificate Signing Request的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。
CRT 即 certificate的缩写,即证书。
X.509 是一种证书格式.对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。
X.509的证书文件,一般以.crt结尾,根据该文件的内容编码格式,可以分为以下二种格式:
PEM - Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN..."开头, "-----END..."结尾,内容是BASE64编码.
Apache和*NIX服务器偏向于使用这种编码格式.
DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.
Java和Windows服务器偏向于使用这种编码格式
OpenSSL 相当于SSL的一个实现,如果把SSL规范看成OO中的接口,那么OpenSSL则认为是接口的实现。接口规范本身是安全没问题的,但是具体实现可能会有不完善的地方,比如之前的"心脏出血"漏洞,就是OpenSSL中的一个bug.
openssl 给自己颁发证书的步骤:
前提:先建一个cert目录,cd到该目录,以下所有命令的当前路径均为该目录
1. 生成私钥KEY
openssl genrsa -des3 -out server.key 2048
这一步执行完以后,cert目录下会生成server.key文件
2. 生成证书请求文件CSR
openssl req -new -key server.key -out server.csr
该命令先进入交互模式,让你填一堆东西,参考下图:
要注意的是Common Name这里,要填写成使用SSL证书(即:https协议)的域名或主机名,否则浏览器会认为不安全。例如:如果以后打算用https://yjm-docker/xxx 这里就填写yjm-docker
3. 生成CA的证书
前面提过X.509证书的认证者总是CA或由CA指定的人,所以得先生成一个CA的证书
openssl req -new -x509 -key server.key -out ca.crt -days 3650
4. 最后用第3步的CA证书给自己颁发一个证书玩玩
openssl x509 -req -days 3650 -in server.csr \
-CA ca.crt -CAkey server.key \
-CAcreateserial -out server.crt
执行完以后,cert目录下server.crt 就是我们需要的证书。当然,如果要在google等浏览器显示出安全的绿锁标志,自己颁发的证书肯定不好使,得花钱向第三方权威证书颁发机构申请(即:第4步是交给权威机构来做,我们只需要提交server.key、server.csr,哦,还有毛爷爷就好了)
理解openssl协议:x509、crt、cer、key、csr、ssl、tls 这些都是什么鬼? 如何给自己网站颁发证书?相关推荐
- 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)
转自:http://www.cnblogs.com/guogangj/p/4118605.html 之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像 ...
- 证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12)
之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...
- 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)【CSR文件 和 PEM 文件什么区别】
之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...
- [笔记] 如何从不同扩展名的数字证书中提取明文信息? *.pem *.der *.crt *.cer *.key之间的区别是什么?...
副标题:PEM, DER, CRT, CER, KEY, CSR, PFX/P12 等文件格式讲解 本文整理自网络,相关内容版权归原作者所有, (如有雷同绝非巧合) 作者博客:http://www.c ...
- 邮件协议POP3/IMAP/SMTP学习总结 SSL/TLS介绍 常用邮箱服务器设置
邮箱协议介绍 首先,SMTP.POP和IMAP都是与邮件有关的协议.SMTP主要是负责传送邮件,而POP和IMAP是负责接收邮件. SMTP SMTP (Simple Mail Transfer Pr ...
- apache2.2配置https协议(key文件、crt文件、csr文件生成方法)
配置https协议: 1.安装好apache2.2环境,注意要装ssl版本的.这里装在c:/apache目录下. 2.生成服务器证书 1)在DOS命令下进入apache/bin目录 2)在window ...
- 关于加密文件后缀 .cer ,.crt,.key,.csr,.crl,jks 傻傻分不清
文章内容来自互联网整理收集,如侵删! 1. 证书(Certificate) – *.cer *.crt 2. 私钥(Private Key) – *.key 3. 证书签名请求(Certificate ...
- 假如让你来设计SSL/TLS协议,你要怎么设计呢?
本文分享自华为云社区<假如让你来设计SSLTLS协议>,作者:元闰子. 前言 说起网络通信协议,相信大家对 TCP 和 HTTP 都很熟悉,它们可以说是当今互联网通信的基石.但是,在网络安 ...
- SSL/TLS协议的运行原理浅析—https通信过程及CA证书诠释
互联网是开放环境,通信双方都是未知身份,这为协议的设计带来了很大的难度.而且,协议还必须能够经受所有匪夷所思的攻击,这使得SSL TLS协议变得异常复杂.理清https原理与CA证书体系 互联网的通信 ...
- 简单了解SSL/TLS协议
今天小编就为大家带来一篇关于SSL/TLS协议的文章.小编觉得挺不错的,为此分享给大家做个参考.一起跟随小编过来看看吧. TLS名为传输层安全协议(Transport Layer Protocol) ...
最新文章
- ARM32页表-虚拟地址到物理地址的转换
- 2、Java Swing JFrame和JPanel:窗口容器和面板容器
- RRID和CAS是什么?
- C语言打印输出红色字体
- js时间对象:获取当前时间(格式化)- 代码篇
- 【Proxy SwitchyOmega】Chrome安装插件【提示程序包无效:“CRX_HEADER_INVALID“】【解决方法】
- ASP.NET MVC3书店--第七节 用户及身份验证(转)
- 高清简约家居环境场景设计样机模板素材,还原现场!
- CentOS 中卸载 RPM 包文件
- MATLAB 中BP神经网络算法用于回归拟合的实现
- 电脑表格制作教程入门_微信销售小程序入门教程:制作+营销
- Excel制作抽奖小程序
- 信号调制三种方法的带宽比较
- Windows的重要服务端口135/137/138/139/445
- 有效破解行业难点 专家称区块链+医疗发展还需找准应用场景
- JavaScript工具类:util.js用法实例
- Excel学习日记:L23-如何计算成绩排名
- mysql server 安装教程_MySQL Server 的安装方法及简要步骤
- rust领地柜用石镐拆吗_腐蚀Rust防炸地基教学 伪分离和双层防炸地基怎么造
- json spirit_Spirit App:Web实时轻松动画
热门文章
- python 椭圆曲线dh密钥交换_密钥交换之DH算法
- 对抗样本(一)以综述入门
- 随手写程序-t检验计算置信区间
- 0x0000004e蓝屏代码解决教程
- 【Flutter小记10】apk 提交各大应用市场,出现armeabi与arm64 版本标识/版本号不一致无法上传审核的解决方案
- scrapy爬取实习僧全站
- dataframe保存为txt_如何快速将TXT转换为SRT文件
- 1.list倒叙输出
- 手机卫星定位系统_中国北斗:已启用全球定位服务,我们如何使用手机北斗卫星导航?...
- 新浪微博开发平台基于php的sdk包(包含demo程序),新浪微博API开发简介之用户授权(PHP基础篇)_PHP教程...