저는 Ubuntu 14.04("Trusty") 서버에서 Apache 2.4.7을 실행하고 있습니다. Ubuntu 특정 번들 식별자는 "2.4.7-1ubuntu4.1"입니다.
DH/ECDH 매개변수가 명시적으로 지정되지 않은 경우(아래 참조) Apache는 다음 표준 DH 매개변수를 사용합니다.RFC 3526이산 로그 DH의 경우. 매개변수의 길이는 RSA 공개 키의 길이와 일치합니다(예: 2048비트 RSA 키는 2048비트 DH 매개변수를 가져오고, 4096비트 RSA 키는 4096비트 DH 매개변수를 가져오는 등).
ECDH는 RSA 또는 ECDSA 공개 키의 크기에 관계없이 NIST P-256 큐브만 사용하는 것으로 보입니다.
이것아파치 문서사이트의 SSL 인증서 외에도 SSLCertificateFile
사이트 구성 파일의 지시문에서 참조하는 파일에 DH 또는 ECDH 매개변수를 수동으로 지정할 수도 있음을 나타냅니다.
문서 내 관련 항목의 정확한 텍스트는 다음과 같습니다.
openssl dhparam
다른 선택적 요소는 및 각각에 의해 생성된 임시 키의 DH 매개변수 및/또는 EC 곡선 이름openssl ecparam
(버전 2.4.7 이상에서 지원됨)과 마지막으로 최종 엔터티 인증서의 개인 키입니다.
그러나 Apache는 이런 방식으로 선언된 첫 번째 DH 및 첫 번째 ECDH 매개변수만 읽는 것으로 보입니다. 이 파일에 선언된 다른 매개변수 세트는 무시됩니다.
클라이언트가 DH/ECDH에 사용할 세트를 선택할 수 있도록 여러 매개변수 세트를 선언할 수 있습니까?
특히 ECDH에 대해 허용되는 여러 타원 곡선을 선언하고 싶습니다.
secp256r1
예를 들어, 호환성상의 이유로 이러한 곡선을 지원하는 클라이언트에 secp384r1
제공 하고 싶습니다 .secp521r1
또한 이전 클라이언트에는 1024비트 DH 매개변수를 제공하는 것이 가장 좋지만, 더 긴 소수를 지원하는 최신 클라이언트에는 2048비트 이상을 제공하는 것이 가장 좋습니다.
DH 및 ECDH 매개변수 세트를 여러 개 선언하는 것이 가능합니까? 뭔가 빠진 것이 있습니까? 아니면 각각 DH 및 ECDH 매개변수 세트 하나만 명시적으로 선언할 수 있습니까?
답변1
EC가 아닌 DH가 이를 수행할 수 있는 방법은 없습니다.
ECDH의 경우:
SSLOpenSSLConfCmd ECDHParameters prime256v1
SSLOpenSSLConfCmd Curves brainpoolP512r1:secp521r1:brainpoolP384r1:secp384r1:brainpoolP256r1:prime256v1
답변2
- DH 매개변수 - 사용할 계획인 경우에만 적용됩니다
DHE_RSA_<insert cipher here>
. 이러한 암호를 사용할 계획이 없다면 이 점은 의미가 없습니다. EC 매개변수 - 귀하는필수의Apache 2.4.8 이상으로 업그레이드그리고OpenSSL 1.0.2 이상이 있어야 합니다. Ubuntu 14.04.x에서는 두 버전 모두 사용할 수 없습니다. 다음을 수행해야 합니다.
apt-add-repository ppa:ondrej/apache2 #corrected apt-get update apt-get upgrade openssl apt-get upgrade apache2
최신 Apache2 및 OpenSSL 라이브러리를 사용한 후 컨테이너에 다음 줄을 추가하여 EC 암호를 업데이트할 수 있습니다 <VirtualHost *:443>
.
SSLOpenSSLConfCmd Curves secp384r1
둘 이상의 곡선을 원하는 경우:
SSLOpenSSLConfCmd Curves secp384r1:secp521r1
그런 다음 서비스를 시작합니다.
service apache2 restart
답변3
Apache 2.4.7 및 OpenSSL 0.9.8a 이상을 사용하는 경우 인증서 파일 끝에 dhparam 파일을 추가하여 DH 매개변수를 수정할 수 있습니다.
EC 매개변수를 모릅니다...