今天尝试在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 这些都是什么鬼? 如何给自己网站颁发证书?相关推荐

  1. 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

    转自:http://www.cnblogs.com/guogangj/p/4118605.html 之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像 ...

  2. 证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12)

    之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...

  3. 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)【CSR文件 和 PEM 文件什么区别】

    之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...

  4. [笔记] 如何从不同扩展名的数字证书中提取明文信息? *.pem *.der *.crt *.cer *.key之间的区别是什么?...

    副标题:PEM, DER, CRT, CER, KEY, CSR, PFX/P12 等文件格式讲解 本文整理自网络,相关内容版权归原作者所有, (如有雷同绝非巧合) 作者博客:http://www.c ...

  5. 邮件协议POP3/IMAP/SMTP学习总结 SSL/TLS介绍 常用邮箱服务器设置

    邮箱协议介绍 首先,SMTP.POP和IMAP都是与邮件有关的协议.SMTP主要是负责传送邮件,而POP和IMAP是负责接收邮件. SMTP SMTP (Simple Mail Transfer Pr ...

  6. apache2.2配置https协议(key文件、crt文件、csr文件生成方法)

    配置https协议: 1.安装好apache2.2环境,注意要装ssl版本的.这里装在c:/apache目录下. 2.生成服务器证书 1)在DOS命令下进入apache/bin目录 2)在window ...

  7. 关于加密文件后缀 .cer ,.crt,.key,.csr,.crl,jks 傻傻分不清

    文章内容来自互联网整理收集,如侵删! 1. 证书(Certificate) – *.cer *.crt 2. 私钥(Private Key) – *.key 3. 证书签名请求(Certificate ...

  8. 假如让你来设计SSL/TLS协议,你要怎么设计呢?

    本文分享自华为云社区<假如让你来设计SSLTLS协议>,作者:元闰子. 前言 说起网络通信协议,相信大家对 TCP 和 HTTP 都很熟悉,它们可以说是当今互联网通信的基石.但是,在网络安 ...

  9. SSL/TLS协议的运行原理浅析—https通信过程及CA证书诠释

    互联网是开放环境,通信双方都是未知身份,这为协议的设计带来了很大的难度.而且,协议还必须能够经受所有匪夷所思的攻击,这使得SSL TLS协议变得异常复杂.理清https原理与CA证书体系 互联网的通信 ...

  10. 简单了解SSL/TLS协议

    今天小编就为大家带来一篇关于SSL/TLS协议的文章.小编觉得挺不错的,为此分享给大家做个参考.一起跟随小编过来看看吧.  TLS名为传输层安全协议(Transport Layer Protocol) ...

最新文章

  1. ARM32页表-虚拟地址到物理地址的转换
  2. 2、Java Swing JFrame和JPanel:窗口容器和面板容器
  3. RRID和CAS是什么?
  4. C语言打印输出红色字体
  5. js时间对象:获取当前时间(格式化)- 代码篇
  6. 【Proxy SwitchyOmega】Chrome安装插件【提示程序包无效:“CRX_HEADER_INVALID“】【解决方法】
  7. ASP.NET MVC3书店--第七节 用户及身份验证(转)
  8. 高清简约家居环境场景设计样机模板素材,还原现场!
  9. CentOS 中卸载 RPM 包文件
  10. MATLAB 中BP神经网络算法用于回归拟合的实现
  11. 电脑表格制作教程入门_微信销售小程序入门教程:制作+营销
  12. Excel制作抽奖小程序
  13. 信号调制三种方法的带宽比较
  14. Windows的重要服务端口135/137/138/139/445
  15. 有效破解行业难点 专家称区块链+医疗发展还需找准应用场景
  16. JavaScript工具类:util.js用法实例
  17. Excel学习日记:L23-如何计算成绩排名
  18. mysql server 安装教程_MySQL Server 的安装方法及简要步骤
  19. rust领地柜用石镐拆吗_腐蚀Rust防炸地基教学 伪分离和双层防炸地基怎么造
  20. json spirit_Spirit App:Web实时轻松动画

热门文章

  1. python 椭圆曲线dh密钥交换_密钥交换之DH算法
  2. 对抗样本(一)以综述入门
  3. 随手写程序-t检验计算置信区间
  4. 0x0000004e蓝屏代码解决教程
  5. 【Flutter小记10】apk 提交各大应用市场,出现armeabi与arm64 版本标识/版本号不一致无法上传审核的解决方案
  6. scrapy爬取实习僧全站
  7. dataframe保存为txt_如何快速将TXT转换为SRT文件
  8. 1.list倒叙输出
  9. 手机卫星定位系统_中国北斗:已启用全球定位服务,我们如何使用手机北斗卫星导航?...
  10. 新浪微博开发平台基于php的sdk包(包含demo程序),新浪微博API开发简介之用户授权(PHP基础篇)_PHP教程...