security - 如何以安全的方式为 HTTPS 配置 OpenSSL?

标签 security curl ssl cryptography openssl

网络上每个月都会有一些文章介绍某些应用程序或平台在 SSL 实现中使用过时的加密配置。这让我担心......我自己的实现怎么样?

当我在应用程序中使用 OpenSSL 来提供和/或使用 HTTPS 时,我到底应该怎样做才能以最安全的方式配置 OpenSSL? (例如与 cURL 结合)

除了配置之外,还必须采取哪些其他步骤来确保 OpenSSL 的安全使用?我应该采取什么特殊步骤吗?与公钥基础设施有关?

网络上是否有一些“已知良好”的配置可用?

最佳答案

确保您的证书提供商使用 SHA1 或更好的(首选 SHA2)哈希对您的证书进行签名。

HTTPS (SSL/TLS) 仅在您验证证书时才有效。这通常由客户执行。如果客户端没有通过验证证书来验证服务器的身份,您就会受到中间人攻击。

您可以配置服务器,使其不允许旧的 (SSL) 协议(protocol),而是需要最新的 TLS 协议(protocol),该协议(protocol)在加密上更强大(例如,伪随机函数中的 SHA1 和 MD5,而不仅仅是 TLS 中的 MD5 1.0,TLS 1.2 使用 SHA2)。

创建证书 key 对时,请选择更长的 key (例如,2048 位优于 1024 位)。

Mozilla wiki 上有一些很好的建议: Security/Server Side TLS

关于security - 如何以安全的方式为 HTTPS 配置 OpenSSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19377865/

相关文章:

security - 在 cookie 中存储 API 的用户名和密码?

curl - 如何让curl忽略代理?

ios - 使用 curl 将 iOS dSYM 文件上传到 Fabric Crashlytics

security - 集中式与分布式版本控制安全性

java - “Your security settings have blocked a local application from running” Java 8

php - 随机 sleep 可以防止定时攻击吗?

curl - 如何使用curl将多个参数传递给cron作业?

iPad:服务器需要客户端证书

java - 下载 Android SDK Build Tools 19.1 时出现 trustAnchors 参数必须为非空错误

spring-mvc - Spring Boot 为私有(private)页面启用 SSL