当前位置: 首页 > news >正文

HTTPS 从懵懵懂懂到认知清晰、从深度理解到落地实操

Https

在现代互联网应用中,网上诈骗、垃圾邮件、数据泄露的现象时有发生。为了数据安全,我们都会选择采用https技术。甚至iOS开发调用接口的时候,必须是https接口,才能调用。现在有部分浏览器也开始强制要求网站必须使用https,网站网页基于https已经势不可挡。https的时代已经到来。

SSL/TLS

TLS(Transport Layer Security) 是 SSL(Secure Socket Layer) 的后续版本

01.准备工作

在客户端(Windows)生成证书,然后安装到服务端(Linux)

下载OpenSSL

Windows:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

Linux:[ Downloads ] - /source/index.html

安装OpenSSL

Windows安装:

双击运行,安装到指定目录即可。

02.生成服务端证书

在Windows系统中生成服务端证书,然后再把相关文件上传到服务器。

查看Win系统已存证书

certmgr.msc 

证书中的信息

  • Country Name (2 letter code) [XX]:CN #请求签署人的信息

  • State or Province Name (full name) []: #请求签署人的省份名字

  • Locality Name (eg, city) [Default City]:# 请求签署人的城市名字

  • Organization Name (eg, company) [Default Company Ltd]:#请求签署人的公司名字

  • Organizational Unit Name (eg, section) []:#请求签署人的部门名字

  • Common Name (eg, your name or your server's hostname) []:#这里一般填写请求人的服务器域名

key:私钥

csr:证书签名请求文件,即待签名证书

crt:证书

在Win下生成证书

1.生成私钥:.key

找到OpenSSL安装目录下的/bin目录中的OpenSSL.exe

执行命令(注意目录的访问权限,下同)

openssl genrsa -des3 -out c:/dev/server.key

生成私钥,需要提供一个至少4位,最多1023位的密码

2.由私钥创建待签名证书:.csr

openssl.exe req -new -key c:/dev/server.key -out c:/dev/pub.csr

需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。

3.查看证书中的内容

openssl.exe req -text -in c:/dev/pub.csr -noout

生成内容清单:

server.key:服务器私钥

pub.csr:服务器待签名证书

03.自建CA对证书进行签名

我们用的操作系统(windows, linux, unix ,android, ios等)都预置了很多信任的根证书,比如我的windows中就包含VeriSign的根证书,那么浏览器访问服务器比如支付宝www.alipay.com时,SSL协议握手时服务器就会把它的服务器证书发给用户浏览器,而这本服务器证书又是比如VeriSign颁发的,自然就验证通过了。

由于费用的原因,我们需要自建CA机构,来给我们自己的证书进行签名。所谓“CA机构”的本质,其实也是一套证书,只不过这套证书具有“公信力”,可以用来给别人签名。

1.创建CA私钥
openssl.exe genrsa -out c:/dev/myca.key 2048
2.生成CA待签名证书
openssl.exe req -new -key c:/dev/myca.key -out c:/dev/myca.csr
3.生成CA根证书

openssl.exe x509 -req -in c:/dev/myca.csr -extensions v3_ca -signkey c:/dev/myca.key -out c:/dev/myca.crt
4.对服务器证书签名

对上一个环节生成的服务端 待签名证书(.csr) 进行签名,需要用到本CA机构的 私钥(.key)证书(.crt) 作为参数:

openssl x509 -days 365 -req -in c:/dev/pub.csr -extensions v3_req -CAkey c:/dev/myca.key -CA c:/dev/myca.crt -CAcreateserial -out c:/dev/server.crt

生成内容清单:

myca.key:ca机构私钥

myca.csr:ca机构待签名证书

myca.crt:ca机构证书,即根证书

server.crt:服务器证书,被ca机构签名过的证书

04.Nginx配置

将生成好的服务端证书上传到服务器指定目录,并在Nignx中进行配置

添加信任

在当前系统中安装证书

 如下图解:让你更加清楚的懂它

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 基于Java+SpringMvc+vue+element实现上海汽车博物馆平台
  • HCIP—BGP路由发布
  • 达梦数据库自动备份(全库)+还原(全库) 控制台
  • Flink SQL填坑记3:两个kafka数据关联查询
  • 使用npm仓库的优先级以及.npmrc配置文件的使用
  • [HackMyVM]靶场Crossbow
  • 港大新工作 HiGPT:一个模型,任意关系类型 !
  • Hana数据库 No columns were bound prior to calling SQLFetch or SQLFetchScroll
  • 谷歌seo营销服务有哪些服务?
  • Java ArrayList类
  • Share-ChatGPT官网UI/文件上传/联网搜索/GPTS 一并同步
  • 【408直通车】(考研数一、二、三合集)线性代数公式全覆盖
  • 自动驾驶-如何进行多传感器的融合
  • DMA知识
  • selenium元素定位--xpath定位--层级与逻辑组合定位
  • JS 中的深拷贝与浅拷贝
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android优雅地处理按钮重复点击
  • Angular 2 DI - IoC DI - 1
  • CSS 提示工具(Tooltip)
  • golang中接口赋值与方法集
  • gulp 教程
  • js算法-归并排序(merge_sort)
  • js中的正则表达式入门
  • leetcode-27. Remove Element
  • SpringCloud集成分布式事务LCN (一)
  • Web Storage相关
  • 不上全站https的网站你们就等着被恶心死吧
  • 多线程事务回滚
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 好的网址,关于.net 4.0 ,vs 2010
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端攻城师
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 时间复杂度与空间复杂度分析
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 为视图添加丝滑的水波纹
  • 用 Swift 编写面向协议的视图
  • 责任链模式的两种实现
  • #FPGA(基础知识)
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #vue3 实现前端下载excel文件模板功能
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #前后端分离# 头条发布系统
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (2015)JS ES6 必知的十个 特性
  • (52)只出现一次的数字III
  • (ZT)一个美国文科博士的YardLife
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)