openssl 1.1.1 build, 上层应用option选项及openssl s_client 用法

2024-02-16 01:38

本文主要是介绍openssl 1.1.1 build, 上层应用option选项及openssl s_client 用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【build】

./Configure linux-x86_64 --prefix=/usr shared

如果想提供zlib压缩,那么可以加zlib参数:

./Configure linux-x86_64 --prefix=/usr shared zlib

make

make install

如果报错BIO_f_zlib找不到,那么查看一下libcrypto.so.1.1,libcrypto.a等等目录是否正确,比如:

./usr/local/lib64/libcrypto.so.1.1
./usr/local/lib64/pkgconfig/libcrypto.pc
./usr/local/lib64/libcrypto.a
./usr/local/lib64/libcrypto.so
./usr/lib64/libcrypto.so.1.1
./usr/lib64/pkgconfig/libcrypto.pc
./usr/lib64/libcrypto.a
./usr/lib64/libcrypto.so

如果没有,可以将openssl-1.1.1目录下面build好的libcrypto库文件拷贝到正确的目录下面。

查看版本:               openssl version -a

查看disable的功能:openssl list -disabled,结果比如:

[lxx@localhost sipp]$ openssl list -disabled
Disabled algorithms:
HEARTBEATS
MD2
RC5
SCTP
SSL3

 

【上层应用option选项】

具体option可以参考https://www.openssl.org/docs/man1.1.1/man3/

常用:SSL_CTX_set_options, SSL_clear_options

比如:对于上层应用来说,默认是不支持ssl compression的,如果需要修改,可以设置:

SSL_CTX* ssl_ctx = SSL_CTX_new(TLSv1_2_method());
SSL_CTX_clear_options(ssl_ctx, SSL_OP_NO_COMPRESSION);

比如:默认是支持session resumption的,可以将其禁止(同时禁止session id以及session ticket):

SSL_CTX_set_session_cache_mode(ssl_ctx, SSL_SESS_CACHE_OFF);
SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_TICKET | SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION);
SSL_CTX_set_num_tickets(ssl_ctx, 0);

 

【openssl s_client用法】

openssl s_client [-connect host:port] [-verify depth] [-cert filename] [-key filename] [-CApath directory] [-CAfile filename] [-reconnect] [-pause] [-showcerts] [-debug] [-nbio_test] [-state] [-nbio] [-crlf] [-ign_eof] [-quiet] [-ssl2] [-ssl3] [-tls1] [-no_ssl2] [-no_ssl3] [-no_tls1] [-bugs] [-cipher cipherlist] [-rand file(s)]

 

参考:

https://www.openssl.org/docs/man1.1.1/man3/

https://www.mkssoftware.com/docs/man1/openssl_s_client.1.asp

 

这篇关于openssl 1.1.1 build, 上层应用option选项及openssl s_client 用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/713139

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java8 Collectors.toMap() 的两种用法

《Java8Collectors.toMap()的两种用法》Collectors.toMap():JDK8中提供,用于将Stream流转换为Map,本文给大家介绍Java8Collector... 目录一、简单介绍用法1:根据某一属性,对对象的实例或属性做映射用法2:根据某一属性,对对象集合进行去重二、Du

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳