openssl如何改变版本

时间: 2023-12-14 15:02:02 浏览: 154
要改变 OpenSSL 的版本,您需要使用 OpenSSL 命令行工具中的 s_client 子命令。具体步骤如下: 1. 打开终端或命令提示符窗口,输入以下命令并按回车键: ``` openssl s_client -connect <hostname>:<port> ``` 其中,<hostname> 是您要连接的主机名,<port> 是要连接的端口号。 2. 如果连接成功,您将看到一段 SSL 握手信息,其中包括 OpenSSL 的版本号。例如: ``` CONNECTED(00000003) depth=0 CN = www.example.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = www.example.com verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain 0 s:/CN=www.example.com i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 --- Server certificate ... SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 ... Start Time: 1624261470 Timeout : 7200 (sec) Verify return code: 21 (unable to verify the first certificate) Extended master secret: yes ``` 在 SSL-Session 部分,您可以看到 Protocol 字段,它指示了当前使用的 SSL/TLS 协议版本,例如 TLSv1.2。 3. 要改变协议版本,您需要使用 -tls1、-tls1_1、-tls1_2 或 -tls1_3 参数来指定所需的版本。例如,要使用 TLS 1.3,您可以输入以下命令: ``` openssl s_client -connect <hostname>:<port> -tls1_3 ``` 然后,您将看到 SSL-Session 中的 Protocol 字段已经更改为 TLSv1.3。 注意,您需要确保服务器也支持所需的协议版本,否则连接将失败。同时,由于 OpenSSL 的版本可能会影响您的应用程序安全性,建议谨慎更改 OpenSSL 版本,仅在必要时使用。
阅读全文

相关推荐

application/x-rar
openssl 编程 当前版本 赵春平 著 第一章 基础知识 8 1.1 对称算法 8 1.2 摘要算法 9 1.3 公钥算法 9 1.4 回调函数 11 第二章 openssl简介 13 2.1 openssl简介 13 2.2 openssl安装 13 2.2.1 linux下的安装 13 2.2.2 windows编译与安装 14 2.3 openssl源代码 14 2.4 openssl学习方法 16 第三章 堆栈 17 3.1 openssl堆栈 17 3.2 数据结构 17 3.3 源码 18 3.4 定义用户自己的堆栈函数 18 3.5 编程示例 19 第四章 哈希表 21 4.1 哈希表 21 4.2 哈希表数据结构 21 4.3 函数说明 23 4.4 编程示例 25 第五章 内存分配 27 5.1 openssl内存分配 27 5.2 内存数据结构 27 5.3 主要函数 28 5.4 编程示例 29 第六章 动态模块加载 30 6.1 动态库加载 30 6.2 DSO概述 30 6.3 数据结构 31 6.4 编程示例 32 第七章 抽象IO 34 7.1 openssl抽象IO 34 7.2 数据结构 34 7.3 BIO 函数 36 7.4 编程示例 36 7.4.1 mem bio 36 7.4.2 file bio 37 7.4.3 socket bio 38 7.4.4 md BIO 39 7.4.5 cipher BIO 40 7.4.6 ssl BIO 41 7.4.7 其他示例 42 第八章 配置文件 43 8.1 概述 43 8.2 openssl配置文件读取 43 8.3 主要函数 44 8.4 编程示例 44 第九章 随机数 46 9.1 随机数 46 9.2 openssl随机数数据结构与源码 46 9.3 主要函数 48 9.4 编程示例 48 第十章 文本数据库 50 10.1 概述 50 10.2 数据结构 51 10.3 函数说明 51 10.4 编程示例 52 第十一章 大数 54 11.1 介绍 54 11.2 openssl大数表示 54 11.3 大数函数 55 11.4 使用示例 58 第十二章 BASE64编解码 64 12.1 BASE64编码介绍 64 12.2 BASE64编解码原理 64 12.3 主要函数 65 12.4 编程示例 66 第十三章 ASN1库 68 13.1 ASN1简介 68 13.2 DER编码 70 13.3 ASN1基本类型示例 70 13.4 openssl 的ASN.1库 73 13.5 用openssl的ASN.1库DER编解码 74 13.6 Openssl的ASN.1宏 74 13.7 ASN1常用函数 75 13.8 属性证书编码 89 第十四章 错误处理 93 14.1 概述 93 14.2 数据结构 93 14.3 主要函数 95 14.4 编程示例 97 第十五章 摘要与HMAC 100 15.1 概述 100 15.2 openssl摘要实现 100 15.3 函数说明 101 15.4 编程示例 101 15.5 HMAC 103 第十六章 数据压缩 104 16.1 简介 104 16.2 数据结构 104 16.3 函数说明 105 16.4 openssl中压缩算法协商 106 16.5 编程示例 106 第十七章 RSA 107 17.1 RSA介绍 107 17.2 openssl的RSA实现 107 17.3 RSA签名与验证过程 108 17.4 数据结构 109 17.4.1 RSA_METHOD 109 17.4.2 RSA 110 17.5 主要函数 110 17.6编程示例 112 17.6.1密钥生成 112 17.6.2 RSA加解密运算 113 17.6.3签名与验证 116 第十八章 DSA 119 18.1 DSA简介 119 18.2 openssl的DSA实现 120 18.3 DSA数据结构 120 18.4 主要函数 121 18.5 编程示例 122 18.5.1密钥生成 122 18.5.2签名与验证 124 第十九章DH 126 19.1 DH算法介绍 126 19.2 openssl的DH实现 127 19.3数据结构 127 19.4 主要函数 128 19.5 编程示例 129 第二十章 椭圆曲线 132 20.1 ECC介绍 132 20.2 openssl的ECC实现 133 20.3 主要函数 135 20.3.1参数设置 135 20.3.2参数获取 136 20.3.3转化函数 137 20.3.4其他函数 137 20.4 编程示例 139 第二十一章 EVP 143 21.1 EVP简介 143 21.2 数据结构 143 21.2.1 EVP_PKEY 144 21.2.2 EVP_MD 144 21.2.3 EVP_CIPHER 145 21.2.4 EVP_CIPHER_CTX 146 21.3 源码结构 147 21.4 摘要函数 147 21.5 对称加解密函数 148 21.6 非对称函数 149 21.7 BASE64编解码函数 149 21.8其他函数 150 21.9 对称加密过程 152 21.10 编程示例 152 第二十二章 PEM格式 159 22.1 PEM概述 159 22.2 openssl的PEM实现 160 22.3 PEM函数 161 22.4 编程示例 161 第二十三章 Engine 165 23.1 Engine概述 165 23.2 Engine支持的原理 165 23.3 Engine数据结构 166 23.4 openssl 的Engine源码 167 23.5 Engine函数 167 23.6 实现Engine示例 169 第二十四章 通用数据结构 182 24.1通用数据结构 182 24.2 X509_ALGOR 182 24.3 X509_VAL 184 24.4 X509_SIG 185 24.5 X509_NAME_ENTRY 186 24.6 X509_NAME 187 24.7 X509_EXTENSION 193 24.8 X509_ATTRIBUTE 199 24.9 GENERAL_NAME 200 第二十五章 证书申请 203 25.1 证书申请介绍 203 25.2 数据结构 203 25.3 主要函数 204 25.4 编程示例 206 25.4.1生成证书请求文件 206 25.4.2 解码证书请求文件 208 第二十六章 X509数字证书 210 26.1 X509数字证书 210 26.2 opessl实现 210 26.3 X509数据结构 210 26.4 X509_TRUST与X509_CERT_AUX 214 26.5 X509_PURPOSE 215 26.6 主要函数 218 26.7 证书验证 221 26.7.1证书验证项 221 26.7.2 Openssl中的证书验证 221 第二十七章 OCSP 222 27.1 概述 222 27.2 openssl实现 222 27.3 主要函数 222 27.4编程示例 227 第二十八章 CRL 228 28.1 CRL介绍 228 28.2 数据结构 228 28.3 CRL函数 230 28.4 编程示例 231 第二十九章 PKCS7 233 29.1概述 233 29.2 数据结构 233 29.3 函数 234 29.4 消息编解码 235 29.4.1 data 235 29.4.2 signed data 236 29.4.3 enveloped 237 29.4.4 signed_and_enveloped 238 29.4.5 digest 238 29.4.6 encrypted 239 29.4.7 读取PEM 239 29.4.8 解码pkcs7 240 第三十章 PKCS12 241 30.1 概述 241 30.2 openss实现 241 30.3数据结构 242 30.4函数 243 30.5 编程示例 245 第三十一章 SSL实现 254 31.1概述 254 31.2 openssl实现 254 31.3 建立SSL测试环境 254 31.4 数据结构 256 31.5 加密套件 256 31.6 密钥信息 257 31.7 SESSION 258 31.8 多线程支持 258 31.9 编程示例 259 31.10 函数 270 第三十二章 Openssl命令 272 32.1概述 272 32.2 asn1parse 272 32.3 dgst 274 32.4 gendh 275 32.5 passwd 276 32.6 rand 276 32.7 genrsa 277 32.8 req 278 32.9 x509 280 32.10 version 283 32.11 speed 283 32.12 sess_id 284 32.13 s_server 284 32.14 s_client 286 32.15 rsa 288 32.16 pkcs7 289 32.17 dsaparam 290 32.18 gendsa 291 32.19 enc 291 32.20 ciphers 292 32.21 CA 293 32.22 verify 296 32.23 rsatul 297 32.24 crl 299 32.25 crl2pkcs7 300 32.26 errstr 300 32.27 ocsp 301 32.28 pkcs12 304 32.29 pkcs8 306 32.30 s_time 307 32.31 dhparam和dh 308 32.32 ecparam 309 32.33 ec 310 32.34 dsa 311 32.35 nseq 312 32.36 prime 313 32.37 smime 313

最新推荐

recommend-type

openssh升级文档(以ssh8.4为例)

验证OpenSSH版本(`ssh -V`)和OpenSSL版本,确保升级成功。 总之,升级OpenSSH涉及多个步骤,包括下载和安装依赖,配置和编译源代码,以及更新配置文件和二进制文件。在升级过程中要密切关注任何错误或警告,及时...
recommend-type

STM32之光敏电阻模拟路灯自动开关灯代码固件

这是一个STM32模拟天黑天亮自动开关灯代码固件,使用了0.96寸OLED屏幕显示文字,例程亲测可用,视频示例可B站搜索 285902929
recommend-type

PHP在线工具箱源码站长引流+在线工具箱源码+多款有趣的在线工具+一键安装

PHP在线工具箱源码站长引流+在线工具箱源码+多款有趣的在线工具+一键安装 测试环境:nginx+php5.6+mysql5.5 安装说明:上传后访问安装即可
recommend-type

PageNow大数据可视化开发平台-开源版,基于SprigBoot+Vue构建的数据可视化开发平台,灵活的拖拽式布局、支持多种数据源、丰富的通用组件.zip

PageNow大数据可视化开发平台_开源版,基于SprigBoot+Vue构建的数据可视化开发平台,灵活的拖拽式布局、支持多种数据源、丰富的通用组件PageNow-基础开源版(基于SpringBoot+Vue构建的数据可视化开发平台)介绍基于SprigBoot+Vue构建的数据可视化开发平台,灵活的拖拽式布局、丰富的通用组件,帮助您快速构建与迭代数据大屏页面。基础开源版仅作为交流学习使用,基础开源版将于2021年3月1日开始维护正式更新。如需购买功能更加完善且完善的企业版,请前往官网进行查看并在线体验企业版。官方网站http://pagenow.cn内容结构服务器邮政程序源码web前端主程序源码(基于Vue-cli3.0为基础构建的项目结构)总体架构选择1、 SpringBoot 主架构框架2、 决赛 基于Db的数据库操作3、 德鲁伊 数据库连接池4、 Swagger2 接口测试框架5、 Maven 项目建设管理前端架构型1、 vue mvvm 框架2、 vue-router 路由管理3、 vuex 状态管理4、 axios HTTP
recommend-type

【滤波跟踪】基于matlab松散耦合的四元数扩展卡尔曼滤波器EKF(真实飞行数据)【含Matlab源码 10891期】.zip

Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
recommend-type

简化填写流程:Annoying Form Completer插件

资源摘要信息:"Annoying Form Completer-crx插件" Annoying Form Completer是一个针对Google Chrome浏览器的扩展程序,其主要功能是帮助用户自动填充表单中的强制性字段。对于经常需要在线填写各种表单的用户来说,这是一个非常实用的工具,因为它可以节省大量时间,并减少因重复输入相同信息而产生的烦恼。 该扩展程序的描述中提到了用户在填写表格时遇到的麻烦——必须手动输入那些恼人的强制性字段。这些字段可能包括但不限于用户名、邮箱地址、电话号码等个人信息,以及各种密码、确认密码等重复性字段。Annoying Form Completer的出现,使这一问题得到了缓解。通过该扩展,用户可以在表格填充时减少到“一个压力……或两个”,意味着极大的方便和效率提升。 值得注意的是,描述中也使用了“抽浏览器”的表述,这可能意味着该扩展具备某种数据提取或自动化填充的机制,虽然这个表述不是一个标准的技术术语,它可能暗示该扩展程序能够从用户之前的行为或者保存的信息中提取必要数据并自动填充到表单中。 虽然该扩展程序具有很大的便利性,但用户在使用时仍需谨慎,因为自动填充个人信息涉及到隐私和安全问题。理想情况下,用户应该只在信任的网站上使用这种类型的扩展程序,并确保扩展程序是从可靠的来源获取,以避免潜在的安全风险。 根据【压缩包子文件的文件名称列表】中的信息,该扩展的文件名为“Annoying_Form_Completer.crx”。CRX是Google Chrome扩展的文件格式,它是一种压缩的包格式,包含了扩展的所有必要文件和元数据。用户可以通过在Chrome浏览器中访问chrome://extensions/页面,开启“开发者模式”,然后点击“加载已解压的扩展程序”按钮来安装CRX文件。 在标签部分,我们看到“扩展程序”这一关键词,它明确了该资源的性质——这是一个浏览器扩展。扩展程序通常是通过增加浏览器的功能或提供额外的服务来增强用户体验的小型软件包。这些程序可以极大地简化用户的网上活动,从保存密码、拦截广告到自定义网页界面等。 总结来看,Annoying Form Completer作为一个Google Chrome的扩展程序,提供了一个高效的解决方案,帮助用户自动化处理在线表单的填写过程,从而提高效率并减少填写表单时的麻烦。在享受便捷的同时,用户也应确保使用扩展程序时的安全性和隐私性。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

CC-LINK远程IO模块AJ65SBTB1现场应用指南:常见问题快速解决

# 摘要 CC-LINK远程IO模块作为一种工业通信技术,为自动化和控制系统提供了高效的数据交换和设备管理能力。本文首先概述了CC-LINK远程IO模块的基础知识,接着详细介绍了其安装与配置流程,包括硬件的物理连接和系统集成要求,以及软件的参数设置与优化。为应对潜在的故障问题,本文还提供了故障诊断与排除的方法,并探讨了故障解决的实践案例。在高级应用方面,文中讲述了如何进行编程与控制,以及如何实现系统扩展与集成。最后,本文强调了CC-LINK远程IO模块的维护与管理的重要性,并对未来技术发展趋势进行了展望。 # 关键字 CC-LINK远程IO模块;系统集成;故障诊断;性能优化;编程与控制;维护
recommend-type

使用MATLAB写一个在柱坐标系中实现以下功能的代码:1) 生成具有损耗的平面电磁波模型;2) 调整电场分量Ex和Ey的幅度和相位,以仿真三种极化的形成?

在MATLAB中,处理电磁学问题通常需要利用`physconst`、`polar2cartesian`等函数库。以下是一个简化的示例,展示了如何生成一个基本的平面电磁波模型,并调整电场分量的幅度和相位。请注意,实际的损耗模型通常会涉及到复杂的阻抗和吸收系数,这里我们将简化为理想情况。 ```matlab % 初始化必要的物理常数 c = physconst('LightSpeed'); % 光速 omega = 2*pi * 5e9; % 角频率 (例如 GHz) eps0 = physconst('PermittivityOfFreeSpace'); % 真空介电常数 % 定义网格参数
recommend-type

TeraData技术解析与应用

资源摘要信息: "TeraData是一个高性能、高可扩展性的数据仓库和数据库管理系统,它支持大规模的数据存储和复杂的数据分析处理。TeraData的产品线主要面向大型企业级市场,提供多种数据仓库解决方案,包括并行数据仓库和云数据仓库等。由于其强大的分析能力和出色的处理速度,TeraData被广泛应用于银行、电信、制造、零售和其他需要处理大量数据的行业。TeraData系统通常采用MPP(大规模并行处理)架构,这意味着它可以通过并行处理多个计算任务来显著提高性能和吞吐量。" 由于提供的信息中描述部分也是"TeraData",且没有详细的内容,所以无法进一步提供关于该描述的详细知识点。而标签和压缩包子文件的文件名称列表也没有提供更多的信息。 在讨论TeraData时,我们可以深入了解以下几个关键知识点: 1. **MPP架构**:TeraData使用大规模并行处理(MPP)架构,这种架构允许系统通过大量并行运行的处理器来分散任务,从而实现高速数据处理。在MPP系统中,数据通常分布在多个节点上,每个节点负责一部分数据的处理工作,这样能够有效减少数据传输的时间,提高整体的处理效率。 2. **并行数据仓库**:TeraData提供并行数据仓库解决方案,这是针对大数据环境优化设计的数据库架构。它允许同时对数据进行读取和写入操作,同时能够支持对大量数据进行高效查询和复杂分析。 3. **数据仓库与BI**:TeraData系统经常与商业智能(BI)工具结合使用。数据仓库可以收集和整理来自不同业务系统的数据,BI工具则能够帮助用户进行数据分析和决策支持。TeraData的数据仓库解决方案提供了一整套的数据分析工具,包括但不限于ETL(抽取、转换、加载)工具、数据挖掘工具和OLAP(在线分析处理)功能。 4. **云数据仓库**:除了传统的本地部署解决方案,TeraData也在云端提供了数据仓库服务。云数据仓库通常更灵活、更具可伸缩性,可根据用户的需求动态调整资源分配,同时降低了企业的运维成本。 5. **高可用性和扩展性**:TeraData系统设计之初就考虑了高可用性和可扩展性。系统可以通过增加更多的处理节点来线性提升性能,同时提供了多种数据保护措施以保证数据的安全和系统的稳定运行。 6. **优化与调优**:对于数据仓库而言,性能优化是一个重要的环节。TeraData提供了一系列的优化工具和方法,比如SQL调优、索引策略和执行计划分析等,来帮助用户优化查询性能和提高数据访问效率。 7. **行业应用案例**:在金融、电信、制造等行业中,TeraData可以处理海量的交易数据、客户信息和业务数据,它在欺诈检测、客户关系管理、供应链优化等关键业务领域发挥重要作用。 8. **集成与兼容性**:TeraData系统支持与多种不同的业务应用和工具进行集成。它也遵循行业标准,能够与其他数据源、分析工具和应用程序无缝集成,为用户提供一致的用户体验。 以上便是关于TeraData的知识点介绍。由于文件描述内容重复且过于简略,未能提供更深层次的介绍,如果需要进一步详细的知识,建议参考TeraData官方文档或相关技术文章以获取更多的专业信息。