详细讲解https证书openssl公钥私钥以及ssh公钥私钥的生成以及使用

简介: 详细讲解https证书openssl公钥私钥以及ssh公钥私钥的生成以及使用

https自签证书说明

1. https的流程示意图

 

图片.png

 

https安全通信机制流程详解:

客户端发送 https 请求,把自身支持的秘钥算法套件(SSL 指定版本、加密组件列表)发送给服务器

服务器判断自身是否支持该算法套件,如果支持则返回证书信息(本质为公钥,包含了证书颁发机构,网址,过期时间等) ,否则断开连接,

客户端解析证书(通过 TLS 协议来完成),验证证书是否有效。如果异常,则会提示是否安装证书,常见的就是浏览器搜索栏左侧出现“X”告警按钮等。

如果证书有效、或者是授信安装证书后,开始传送加密信息(用证书加密后的随机值,供加解密使用)

服务端通过私钥解密加密信息,得到客户端发送来的随机值,然后把内容通过该值进行对称加密。这样一来,除非知道私钥,否则是无法获取加密内容的。

服务端返回加密后的内容

客户端通过前面提到的随机值对加密信息进行解密

 

证书验证过程

SSL 证书中包含的具体内容有证书的颁发机构、有效期、公钥、证书持有者、签名,通过第三方的校验保证了身份的合法

检验基本信息:首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验

校验 CA 机构:浏览器开始查找操作系统中已内置的受信任的证书发布机构 CA,与服务器发来的证书中的颁发者 CA 比对,用于校验证书是否为合法机构颁发;如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。

解密证书:如果找到,那么浏览器就会从操作系统中取出 颁发者 CA 的公钥,然后对服务器发来的证书里面的签名进行验证。

比对 hash 值:浏览器使用相同的 hash 算法计算出服务器发来的证书的 hash 值,将这个计算的 hash 值与证书中签名做对比

对比结果一致,则证明服务器发来的证书合法,没有被冒充

此时浏览器就可以读取证书中的公钥,用于后续加密了

扩展:CA 证书

CA 是证书颁发机构的简称,它会给自己签发一个根证书 Root CA,并且 CA 会通过根证书来签发中间证书,授权中间证书颁发机构签发证书的权限,最后由中间证书颁发机构向用户签发用户证书。之所以多一层中间证书是为了保护根证书,减少根证书被攻击或者被破解的风险。当然中间证书可能不止一个。因此通常用户收到的证书是 3 个:根证书、中间证书、用户证书。事实上,申请到的证书只是用户证书,其他 2 个很早就被签发了。

浏览器为何新任 CA 证书呢?

因为 CA 是被 WebTrust 信任的第三方组织,且只有通过 WebTrust 国际安全审计认证的证书颁发机构 CA,其签发的证书才会被各大浏览器信任。根证书库包含浏览器信任的证书颁发机构 CA 的根证书,有的浏览器会自建根证书库,比如 Mozilla Firefox,有的浏览器会使用其他浏览器的根证书库。

浏览器如何校验证书合法性呢?

由于用户证书被中间证书信任,而中间证书被根证书信任,根证书又被浏览器信任,这样一个完整的证书链使得浏览器可以在根证书库内一次检索用户证书、中间证书和根证书,如果能匹配到根证书,那么这一信任链上的所有证书都是合法的。

2. 在windows客户端通过openssl命令生成

下面是生成自签名证书,仅为测试使用,需要在访问者浏览器导入自己生成的ca根证书。生产环境请像ca申请证书。 下面红色文字其实就是我们像ca申请证书我们需要做的,黑色部分是ca实现,并且ca的私钥自己保存不会泄露给第三方,ca用私钥生成的带签名证书会内置到浏览器里面。

// 生成服务器端私钥

openssl genrsa -out server.key 2048 

 

//生成服务端公钥

openssl rsa -in server.key -pubout -out server.pem

 

//生成CA私钥

openssl genrsa -out ca.key 2048

 

//生成ca的csr文件

openssl req  -config "F:\greensoft\openssl\openssl.cnf"   -new -key ca.key -out ca.csr

 

//生成ca的自签名证书

openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

 

//生成server.csr文件

openssl req  -config "F:\greensoft\openssl\openssl.cnf"  -new -key server.key -out server.csr

 

//生成带有ca签名的证书

Openssl  x509  -req  -days  365   -sha256 -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

 

3.浏览器导入ca的自签名证书ca.crt

自签名证书需要导入

about:preferences#privacy   隐私与安全  证书  查看证书   个人   导入

 

4.然后在浏览器打开https发现就可以了

导入之后可以忽略警告访问,不导入没法忽略警告继续访问。

 

 

ssh公钥和私钥以及私钥登录服务器的配置

1. 传统的登录centos服务器一般我使用xshell,然后使用密码登录。本文主要介绍如何使用秘钥登录。

2. 创建密钥对,秘钥对指的是公钥和私钥。秘钥对在哪里生成无所谓,比如我可以在centos服务器上面生成,我也可以在我本地windows生成。最后服务端centos配置下公钥文件,本地的xshell客户端配置下私钥文件。这样就可以登录了。一般默认centos公钥文件保存位置在/root/.ssh/authorized_keys里面,一行一个,可以有多个公钥。多个公钥对应多个私钥,也就是能够给不同的人分配不同的私钥来使用这台服务器了。如下这种格式。这种公钥格式和我们传统的公钥格式不一样,你可以大概的认为这是ssh专属公钥格式。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDr3vyxyQ/XHj3TkmjhheY0JAG6lLEUyDSdksNQ+a4meC7Jlhj+bAi7RGcJO1JxpewsgIC9dbl9lDWcrJm6ZXVwqevIbbzVIQsfpGPxJJaElI6oDPaQ/T24yVbULUoXTvYxldzMsU/6l2RNe+PwtWz0MeQl6jdTqqEk6T1rBvgA4PIymhndBcq3RCYBNl4ghIL1HiK9nyXtD4n58qhawEreBepQYDAydaRW8+zVspPlfhYUnktAacPaCRmmNxtk/RgA7cWF5XHsBuP4YXWhpvG2f4CYAZRNcaLvIbdvPgxeqV4axis83zcaeYBW88n4YEe6dj9wpand71b1FHFmzZbO90oVTf+rXFMLNBJ+COOOVFlIgHzyZ4h70Y5YfOrpxBHHqF7WOsQ9W3oOluNWOgxkRjXW7be8fqFMJ8wDvw/hG2jmS9GOpLFn3xgVmK9/WRUWzyfqrG579bCRGf1/gIu3Qc57T8CmU/8haFhL9TGMTF6xYDLITXSBSBOXT55ZA6E= root@wltest

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDU2JIqkAVQTlO0Pia8/7yp4gnIu1uTJ4Hq07/Jvd0yYD9C/30Khm4wY0gw8RGNU/D7eP57qHdGM6KCcZ75DwR6rO5owJmZQW7QGohem8GRJF58PrRqEhCvP6XOaKyTQJr+T4uq1aVJWHBYaeyVh80nwnREsky8tFSPGos2X/qhrlue0jX+hDu4hvWFJgP0oLbYBs4QJoH6TIcdeos2gxK1/U7/saru5Q3YDuU54/mA4RcF7izI4koKcBLSAilaZBys0OtBEx95Y/eGuIPEunDLf1Q6JBBK+pE0Jz0orS6Kdt8S7QsMBO2Z2pt8ZvPeuI6k5c0H7ThmX56ZaL6Q5H5FTbDoLz6TM4QGbwgbDv/HXUc50cHJPKFAoo0R5S4QSEptzL8B719L2FYCX27fS9ni3O7+3A/RDvThdmQXaLYeyucJHGpL1I5wlBnUrOXH2Q4sn5xQmZWldDjt7+zsjwXvPpwy2YNrlqp4XLPKcqFDGnqK/oZjdfA+pkAOfnYBgu0= 613154514@qq.com

3. windows下如何生成ssh秘钥对

ssh-keygen  -t   rsa   -C    "613154514@qq.com"

注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。

现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。

-t参数还支持这些 'ssh-rsa', 'ssh-dss', 'ssh-ed25519', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384' or 'ecdsa-sha2-nistp521'

比如 ssh-keygen  -t   ed25519 -C   "xxxxx@xxxxx.com"

图片.png

上图文件.pub是公钥需要放到centos服务器的这个文件里面/root/.ssh/authorized_keys,一行一个多多个,该完记得重启sshd服务。

systemctl   restart    sshd.service

4. 然后本地在xshell里面使用私钥+私钥密码形式登录就可以了。Xshell客户写的是public key这里需要注意下,这里是私钥。公钥保存在服务器上面的,私钥在自己手机保存。

5. 如何通过私钥导出公钥,id_rsa是私钥文文件,new.pub 是导出的公钥文件。私钥有密码保护,所以需要输入正确的密码才能导出成功。

ssh-keygen  -y  -f   id_rsa > new.pub

图片.png

new.pub 和id_rsa.pub公钥内容是一样的。

相关文章
|
4月前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
5月前
|
运维 搜索推荐 安全
HTTPS 证书自动化运维:基础知识与重要性
随着互联网发展,HTTPS 成为保护网站和用户数据安全的标准协议。HTTPS 证书(SSL/TLS)验证网站身份并加密通信,分为 DV、OV 和 EV 三种类型,确保数据传输安全。它不仅提高安全性、增强用户信任,还能提升搜索引擎排名。手动管理证书繁琐易错,自动化运维工具如 Let`s Encrypt 和 Certbot 可简化流程,减少错误,提高效率。文章介绍了 HTTPS 证书的基础知识、重要性及自动化运维的概念。
|
2月前
|
安全 算法 数据建模
HTTPS证书类型和品牌一览
HTTPS证书(SSL证书)是保障网站数据传输安全与身份可信认证的重要工具,适用于电商、企业官网等各类平台。证书主要分为DV(域名验证)、OV(企业验证)、EV(扩展验证)三种安全级别,以及单域名、通配符、多域名等不同覆盖类型。品牌方面,既有高性价比的国产锐安信、CFCA,也有国际知名的Sectigo、Digicert。
|
5月前
|
监控 运维
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
|
5月前
|
Linux 持续交付 调度
HTTPS 证书自动化运维:https证书管理系统-自动化部署
本指南介绍如何部署Linux服务器节点。首先复制生成的Linux脚本命令,然后将其粘贴到目标服务器上运行。接着刷新页面查看节点记录,并点击“配置证书”选择证书以自动部署。最后,节点部署完成,后续将自动调度,无需人工干预。
HTTPS 证书自动化运维:https证书管理系统-自动化部署
|
5月前
|
运维
HTTPS 证书自动化运维:https证书管理系统之自动化签发
通过访问【https://www.lingyanspace.com】注册账户,进入证书服务菜单并新增证书。填写域名(单域名、多域名或泛域名),创建订单后添加云解析DNS记录进行质检。确认完成后可下载证书,并支持后续查看、更新和定时更新功能。证书过期前15天自动更新,需配置邮箱接收通知。
HTTPS 证书自动化运维:https证书管理系统之自动化签发
|
5月前
|
机器学习/深度学习 人工智能 运维
HTTPS 证书自动化运维:展望未来发展趋势
HTTPS证书自动化运维正朝着更智能、高效和安全的方向发展。未来系统将提升自动化程度,减少人工干预,实现自动签发、续订与部署;深度集成多云平台,提供无缝管理体验;增强高级安全功能如加密算法和威胁检测;优化用户界面,降低使用门槛;支持更多操作系统,确保跨平台一致性;引入AI/ML技术,预测需求并自动解决问题;加强标准化与互操作性,促进生态系统协作。同时,系统将持续扩展功能、优化性能、支持国际化,并注重用户反馈,为全球用户提供优质的证书管理服务。
|
5月前
|
运维 监控 数据安全/隐私保护
HTTPS 证书自动化运维:HTTPS 证书管理系统之使用指南
本文详细介绍【灵燕空间HTTPS证书管理系统】(https://www.lingyanspace.com)的配置与使用,涵盖注册账户、邮箱配置及证书自动签发、监控和部署的一体化指南。通过页面顶部菜单的【视频教程】和【图文教程】,帮助用户从注册到实际应用全面掌握系统操作。最新迭代后,泛域名证书已包含根域名,无需额外申请多域名证书。
|
5月前
|
数据建模 网络安全
IP地址https证书最新申请流程步骤
确保信息准确,遵循CA指导,遇到问题可联系客服。
|
5月前
|
域名解析 安全 数据建模
没有域名只有IP地址怎么申请https证书?
IP 地址 SSL 证书是一种特殊的 SSL/TLS 证书,允许直接为 IP 地址配置 HTTPS 加密,适用于内部服务、私有网络和无域名的设备管理。与基于域名的证书不同,申请过程较为复杂,需选择支持 IP 的证书颁发机构(CA),并完成额外的身份验证步骤。浏览器对 IP 地址的支持有限,可能会显示警告。通过正确配置服务器(如 Nginx 或 Apache),可以确保通信安全。