SSL和TLS

1、现在都是tls,ssl已经退出历史舞台

2、x509是一套标准,就是一些规范文件,主要是说明一个tls证书里面应该包含哪些东西,x509并不是什么具体的实现

3、csr,证书请求文件,是一个具体的文件,不是证书也不是公钥,也不是私钥,它是公钥和一些组织结构信息的综合体,把这个csr给CA公司,CA公司用这个csr制作出证书,所以CRS文件不是证书,它只不过是一个申请文件,本质上它和你写一个入党申请书,是一回事,它就是一个申请书

4、说到证书,都是包含2份文件:一个是后缀是crt或者cer结尾的证书文件,这个证书文件是部署在服务端上的比如nginx,比如tomcat,比如golang写的https服务,都用要这个证书,具体要存放在硬盘上某个文件夹下面,让nginx可以读取到,然后这个证书会被发给客户端浏览器,浏览器上可以看到这个证书的信息;另外一份文件是.key或者.pem格式结尾的私钥,这个是存放在服务器端的,是不对外公开的

5、那pem(Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN..."开头, "-----END..."结尾)又是什么鬼玩意,为什么有的私钥是.key后缀,有的是.pem后缀,pem是指密钥的编码方式,如果一个密钥是用pem这个国际标准进行编码的,那么密钥文件的后缀就可以是.pem,但是如果一个xxx.key的具体内容也是用Pem标准编码的,那么就算是后缀是.key,也是无所谓的,.key只不过是一个文件后缀,文件后缀是什么并不重要

6、所以不要被一些不同的文件后缀写法给迷惑了,当你看到密钥文件比如abc.key、abc.pem,那么它们说的是同一回事

7、还有一个DER格式(Distinguished Encoding Rules)的密钥编码方式,因为PEM是BASE64格式编码的,而DER是二进制格式编码的

所以结论是:

  1. PEM和DER是密钥文件的2种编码方式,导致了密钥文件的后缀不同
  2. 有些人喜欢直接把密钥文件的后缀直接用.key表示,这可能会误导人,比如公钥和私钥,它分别搞成:public.key和private.key

怎么搞到一份证书?

最简单的就是用openssl在命令行下搞

# 第一步:先生成私钥
[root@linux4 tlstest]# openssl genrsa -out private.key 2048
Generating RSA private key, 2048 bit long modulus
...........+++
....................................................................+++
e is 65537 (0x10001)
[root@linux4 tlstest]# ll
-rw-r--r--. 1 root root 1675 9月  10 10:02 private.key

# 第二步:根据私钥生成自签名证书
[root@linux4 tlstest]# openssl req -new -x509 -days 3650 -key private.key -out public.crt -subj "/C=US/ST=state/L=location/O=organization/CN=domain"

[root@linux4 tlstest]# ll
-rw-r--r--. 1 root root 1675 9月  10 10:02 private.key
-rw-r--r--. 1 root root 1277 9月  10 10:02 public.crt

另外,golang库文件中提供了generate_cert.go用于生成自签名的证书(不是权威机构签发的),可以用于部署golang https服务,但是这种自签名的证书浏览器会显示警告,浏览器只认世界知名CA公司的证书,fuck,所以如果你不想你的用户打开你的网站浏览器显示告警,把你的用户吓死的话,还是花钱跟国际知名CA公司买吧

 现在的tls证书都要钱,不想花钱就用这个:快速入门 - Let's Encrypt - 免费的SSL/TLS证书 

我们顺便看看百度,淘宝的tls证书是什么CA公司签发的。

 

 再看看我们自己造的证书,呵呵,双击后,操作系统直接提示,自己造的,不是国际知名CA公司颁发的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值