Não há como fazer isso para DH não-EC.
Para ECDH:
SSLOpenSSLConfCmd ECDHParameters prime256v1
SSLOpenSSLConfCmd Curves brainpoolP512r1:secp521r1:brainpoolP384r1:secp384r1:brainpoolP256r1:prime256v1
Estou executando o Apache 2.4.7 em um servidor Ubuntu 14.04 ("Trusty"). O identificador de pacote específico do Ubuntu é "2.4.7-1ubuntu4.1".
Se não especificar explicitamente os parâmetros DH / ECDH (veja abaixo), o Apache usa os parâmetros DH padrão de RFC 3526 para log discreto DH. A duração do parâmetro é correspondida ao comprimento da chave pública RSA (por exemplo, uma chave RSA de 2048 bits obtém um parâmetro DH de 2048 bits, a chave RSA de 4096 bits obtém um parâmetro DH de 4096 bits, etc.).
Parece que somente o cuvete NIST P-256 é usado para ECDH, independentemente do tamanho da chave pública RSA ou ECDSA.
A documentação do Apache indica que, além do certificado SSL de um site, um pode especificar manualmente os parâmetros DH ou ECDH no arquivo referenciado pela diretiva SSLCertificateFile
no arquivo de configuração de um site.
O texto exato da entrada relevante nos documentos é:
Additional optional elements are DH parameters and/or an EC curve name for ephemeral keys, as generated by
openssl dhparam
andopenssl ecparam
, respectively (supported in version 2.4.7 or later) and finally, the end-entity certificate's private key.
No entanto, parece que o Apache apenas lê o primeiro DH e os primeiros parâmetros ECDH declarados dessa maneira. Conjuntos adicionais de parâmetros declarados nesse arquivo são ignorados.
É possível declarar vários conjuntos de parâmetros para que os clientes possam escolher qual deles usar para DH / ECDH?
Especificamente, gostaria de declarar várias curvas elípticas aceitáveis para ECDH.
Por exemplo, eu gostaria de ter secp256r1
disponível por motivos de compatibilidade, mas também oferecer secp384r1
e secp521r1
para clientes que suportam essas curvas.
Além disso, seria interessante ter parâmetros DH de 1024 bits disponíveis para clientes legados, mas parâmetros de 2048 bits ou superiores para clientes mais novos que suportem primos mais longos.
É possível declarar vários conjuntos de parâmetros DH e ECDH e simplesmente estou omitindo alguma coisa, ou é possível declarar explicitamente um conjunto de parâmetros DH e ECDH, respectivamente?
DHE_RSA_<insert cipher here>
. Se você não planeja usar nenhuma dessas cifras, o ponto é discutível EC Params - Você é necessário para atualizar para o Apache 2.4.8 ou superior e ter o OpenSSL 1.0.2 ou superior. Nenhum dos dois vem no Ubuntu 14.04.x. Você precisará fazer:
apt-add-repository ppa:ondrej/apache2 #corrected
apt-get update
apt-get upgrade openssl
apt-get upgrade apache2
Quando você estiver nas últimas bibliotecas Apache2 e OpenSSL, poderá atualizar as cifras do EC adicionando a seguinte linha dentro do seu contêiner <VirtualHost *:443>
:
SSLOpenSSLConfCmd Curves secp384r1
Se você quiser mais de uma curva:
SSLOpenSSLConfCmd Curves secp384r1:secp521r1
Em seguida, bata o serviço:
service apache2 restart
Se você estiver usando o apache 2.4.7 e o OpenSSL 0.9.8a ou posterior, você pode modificar os parâmetros DH anexando o arquivo dhparam ao final dos arquivos de certificado.
Nenhuma ideia sobre parâmetros CE ...
Tags openssl apache-httpd