[每日短篇] 24 - HTTPS 和 SSL 自签名证书
今天测试了一下 SSL 自签名证书,发现中文社区介绍 HTTPS 和 SSL 证书的网帖的一些问题,在这里就我看到的问题做一下修正。
现在是 2019-11-06,如果很久以后看到这篇帖子,其中与协议版本、密钥强度相关的内容已经过时了,请注意识别。
关于 HTTPS
- HTTPS 是 HTTP 的扩展,重点解决传输安全的问题,以前是 HTTPS over SSL,新的是 HTTPS over TLS。需要注意的是 HTTPS 解决的是传输安全,防范窃听、中间人攻击之类的,不解决两端的安全问题,见过一些系统中试图用 HTTPS 解决防客户端破解的问题,实际上是没有任何用处的。
- 一般场景下只有客户端验证服务器的证书,客户端不向服务器提供证书。对安全性要求特别高又高不到需要额外硬件支持的时候,还可以双向验证证书,比如早期的网银、支付宝会需要申请数字证书,自己下载安装之后,登录时需要向服务器提供证书验证客户端身份。
关于 SSL 和 TLS
- SSL 和 TLS 也有多个版本,按照 Google、Mozilla、Cloudflare 等大厂的认识,为现代客户端提供的服务应该使用 TLSv1.3,为远古客户端提供的服务应该向下支持到 TLSv1,为不太古老的客户端提供的服务可以使用 TLSv1.2 TLSv1.3。这跟国内状况差别巨大,国内还在大量使用远古客户端都不应该支持的 SSLv3,要是用到 TLSv1.3 也常会被抱怨版本太高。
- 密钥位数现在推荐 2048 位,1024 位的现代浏览器都会吐槽不安全。
- SSL 证书有几种分类方式,其中一种是根据域名格式分的,*.xxx.yyy.zzz 叫做泛域名证书,不包含 xxx.yyy.zzz 本身。
- SSL 证书支持对 IP 签发,与对域名签发一样,签发之后任意端口可用。
- Cipher 也分强弱,TLSv1.2 里也有弱密钥算法,要用 TLSv1.2 的话 Mozilla 推荐
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
,TLSv1.3 目前看都还行。 - 在 Nginx 里如果只用 TLSv1.3 的话,不要添加
ssl_ciphers
指令,即使指定的是 TLSv1.3 的几个 cipher 也照样报错,不写就没错了。如果是同时用几个版本,也不需要在ssl_ciphers
里面写 TLSv1.3 的 cipher。 - 签发一个证书不会让另外一个证书失效,在一个新服务器上使用证书也不会让老服务器上的同一个证书失效。CA 那里有让证书失效的机制,第一需要人为申请,第二需要客户端知道要到网上查且能到网上查某个证书的有效性,所以这个机制并不总是能够生效。
关于自签名
- 很多网帖里面(包括英文帖子)提到自签名第一步生成私钥时需要输入密码,并且还要第二步去掉密码,实际上罪魁祸首是命令里面的
-des3
,这个参数的作用是用 des3 加密私钥,那不要密码就怪了。蛮奇怪第一个这么写的人在想啥。 - 如果没加
-des3
也要输入密码,试试-nodes
参数,有些系统缺省参数不一样,可能需要显式禁用加密私钥。 - 自签名密钥也记得改 2048,强度跟是否受信是两码事。
- 访问自签名网址时注意看浏览器的风险提示,是这个证书是自签名的还是这个证书跟域名不匹配,提示是自签名的服务器就配置对了,不然就还得继续改。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
在移动硬盘中安装win10和macos双系统
本文通过在SSD移动硬盘中安装win10和macos双系统,实现操作系统随身携带 小慢哥的原创文章,欢迎转载 目录 ▪ 目标 ▪ 准备工作 ▪ Step1. 清空分区,转换为GPT ▪ Step2. 安装win10 ▪ Step3. 压缩win10分区容量 ▪ Step4. 创建2个分区 ▪ Step5. 将bootcamp驱动放置到exFAT分区中 ▪ Step6. 将macos分区格式化 ▪ Step7. 安装macOS ▪ Step8. 验证双系统 ▪ 附. win10初始化及bootcamp驱动安装 目标 在SSD移动硬盘中安装win10和macos双系统,在安装完成后,通过移动硬盘引导启动,达到如下效果 ▷ 在非macbook电脑上,可以进入移动硬盘上的win10系统 ▷ 在macbook电脑上,可以选择进入移动硬盘上的win10系统或macos系统 准备工作 以下准备工作很重要,务必提前做好 ▷ 移动硬盘:笔者采用的是品牌为Samsung T5,容量为1TB的SSD固态硬盘 ▷ 一台装有windows系统的电脑,笔者采用的是宏基笔记本电脑,型号为V3-571G,系统为win...
- 下一篇
Spring Boot 2.X(十五):集成 Swagger2 开发 API 文档(在线+离线)
前言 相信很多后端开发在项目中都会碰到要写 api 文档,不管是给前端、移动端等提供更好的对接,还是以后为了以后交接方便,都会要求写 api 文档。 而手写 api 文档的话有诸多痛点: 文档更新的时候,需要再次发送给对接人 接口太对,手写文档很难管理 接口返回的结果不明确 不能直接在线测试接口,通常需要使用工具,如 postman 等 Swagger 就很好的解决了这个问题。 Swagger 简介 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 官网:https://swagger.io Swagger 使用 1.相关依赖 <!--swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作