如何构建openssl静态libs libssl.a&;libcrypto.a

如何构建openssl静态libs libssl.a&;libcrypto.a,openssl,Openssl,我想构建与glibc2.17兼容的openssl静态库。我想在centos7上使用gcc 4.8.5 20150623实现这一点 我的问题是: 我应该使用哪个openssl源代码来实现这一点?(与glibc 2.17兼容) 我应该向./config提供哪些选项来创建libssl.a和libcrypto.a 我应该使用哪些选项 现在,当我使用./config-shared&make时,它只创建libcrypto.a而不是libssl.aFIPS 140-2的“遵从性”与OpenSSL并不真正相

我想构建与glibc2.17兼容的openssl静态库。我想在centos7上使用gcc 4.8.5 20150623实现这一点

我的问题是:

  • 我应该使用哪个openssl源代码来实现这一点?(与glibc 2.17兼容)
  • 我应该向./config提供哪些选项来创建libssl.a和libcrypto.a
  • 我应该使用哪些选项

现在,当我使用./config-shared&make时,它只创建libcrypto.a而不是libssl.a

FIPS 140-2的“遵从性”与OpenSSL并不真正相关。作为通用软件,OpenSSL没有也不能实现140-2的更高级别(我还没有研究过-3,懒惰的我,但它还不适用于OpenSSL,而且可能永远不会),并且它在所有构建中都实现了已批准和未批准的算法,而不管FIP如何

FIPS 140-2验证(和认证)是另一回事。为了实现验证,OpenSSL被有效地拆分为一个称为“FIPS容器”的内部核心,该核心实现了所需的原语并可以进行验证,“完整”OpenSSL的其余部分包括FIPS 140未涵盖的其他算法和内容,如证书、消息、文件、协议等。因此,要使用此功能,您必须(按顺序):

  • (下载并)单独构建FIPS容器,遵循安全策略(和用户指南)规范(前者也在CMVP注册和存档)

  • (下载并)构建一个兼容并引用FIPS容器的“支持FIPS的”OpenSSL版本;目前,对于FIPS容器2.0,这是OpenSSL版本1.0.1或1.0.2

  • 在您的程序中使用支持FIPS的OpenSSL,可以选择FIPS模式,也可以不选择;只有在FIPS模式下运行才能满足美国政府系统的要求


请注意,安全策略中的已测试(和已验证)配置列表不包括CentOS,因此除非您能够建立等效性,否则您的结果实际上不会被视为已验证。

谢谢dave_thompson_085。我主要关注的是构建openssl静态libs libssl.a和libcrypto.a,它与glibc 2.17和gcc 4.8.5兼容。我已经满足了FIPS合规性的要求。您真的需要自己构建OpenSSL吗?还是EPEL 7的
openssl11静态
RPM包(提供两个静态库)已经足够好了?(很抱歉,我之前错过了这个)至少在1.1.1版本中,每个版本都应该包含加密和ssl的.a,无论您是否也获得.so(这是1.1.0版本中的默认值,但必须请求低于该值)。如果没有得到它们,请检查make的输出。