配置HTTPS加密的快速参考指南

Nginx

ssl_protocols TLSv1 TLSv1.1 TLSv1.2

阿帕奇

SSLProtocol All -SSLv2 -SSLv3

密码套房

选择密码套件可能很困难,它们的名称可能看起来很复杂,但可以很容易地分解成它们的组件。采取以下套房:

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

组件是:

	TLS - the protocol used
        ECDHE - the key exchange mechanism
        ECDSA - the algorithm of the authentication key
        AES - the symmetric encryption algorithm
        128 - the key size of the above
        GCM - the mode of the above
        SHA256 - the MAC used by the algorithm

密钥交换机制

您应该只支持使用ECDHE和DHE(也称为EECDH和EDH)进行密钥交换的套件。EC变体更快,并且都提供完美前向保密(PFS),这是必不可少的。用ECDHE支持ECDHE和DHE的一个例子是首选。

	 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
        TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

注意: TLSv1.3仅支持PFS密钥交换。

认证

绝大多数网络将使用RSA作为身份验证密钥,因为它得到了广泛的支持,但ECDSA的速度要快得多(来源)。您可以同时为两个世界提供RSA和ECDSA证书(教程)。通过在身份验证段中检查RSA和/或ECDSA,仅支持适合您情况的套件。

有RSA证书:

	 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

使用ECDSA证书:

	    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

使用混合RSA和ECDSA证书:

	    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
        TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

在上面的示例中,AES_128_GCM形成密码。AES是首选算法,使用128位密钥大小是可以接受的。出于性能原因,您可以选择128位密钥而不是256位密钥。GCM段是密码的模式,表示这是AEAD(带有关联数据的经过身份验证的加密)。GCM套件应优先于非GCM套件。同一套件的GCM和非GCM版本的示例。

	     TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        TLS_ECDHE_RSA_WITH_AES_128_SHA256
        TLS_ECDHE_RSA_WITH_AES_256_SHA384

注意: TLSv1.3仅支持AEAD套件。

Nginx

ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"

阿帕奇

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH

首选服务器订单

当我们按照首选顺序指定密码列表时,我们需要告诉服务器强制执行该订单,否则不会。

Nginx的

ssl_prefer_server_ciphers on;

阿帕奇

SSLHonorCipherOrder On

HTTP严格传输安全性

HSTS是一个HTTP响应标头,允许您将访问者的浏览器配置为仅通过HTTPS与您通信,无论发生什么。如果没有配置HSTS,则不会完成HTTPS的部署。您可以在HSTS中阅读更多内容- 传输层安全性中缺少的链接,我有很多文章涉及HSTS。

Nginx的

add_header Strict-Transport-Security "max-age=600; includeSubDomains";

阿帕奇

Header always set Strict-Transport-Security "max-age=600; includeSubDomains"

随着您对策略越来越有信心,您可以增加max-age的大小并考虑HSTS预加载。

原文地址:转载沃通ssl证书

原文地址:https://www.cnblogs.com/zfss/p/10038324.html