我们在部署SSL数字证书是,并非将ssl配置打开、ssl证书路径设置好即表示绝对安全,主要配置加密套件、SSLv2和SSLv3安全漏洞、OCSP装订、服务器端的首选算法、DHE 密钥交换等,可保障SSL安全等级达到A+

我们在部署SSL数字证书是,并非将ssl配置打开、ssl证书路径设置好即表示绝对安全,主要配置加密套件、SSLv2和SSLv3安全漏洞、OCSP装订、服务器端的首选算法、DHE 密钥交换等,可保障SSL安全等级达到A+

详细配置文件如下

server {  
    listen 80;
    listen 443 ssl;
    server_name infinisign.com;
    root   /home/static;
    index index.php index.html index.htm;

    # 全站HTTPS(SSL)重定向
    if ($scheme = http ) { 
        return 301 https://$host$request_uri; 
    }
    # 配置证书路径
    ssl_certificate /opt/ssl/infinisign.crt;
    ssl_certificate_key /opt/ssl/infinisign.key;
    # 配置加密套件
    ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
    # 配置SSLv2和SSLv3安全漏洞
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_session_cache shared:SSL:10m;
    # 配置OCSP装订
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.4.4 8.8.8.8 valid=300s;
    resolver_timeout 10s;
    # 使用服务器端的首选算法
    ssl_prefer_server_ciphers on;
    # DHE 密钥交换
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ...
}

请注意:上述配置中DHE 密钥交换是需要产生一个更强的DHE参数:

cd /etc/ssl/certs
openssl dhparam -out dhparam.pem 4096
Generating DH parameters, 4096 bit long safe prime, generator 2
This is going to take a long time
...............................................................................................................................................................................+.......................

这个过程会持续很长一段时间(也不是很长),然后nginx在DHE密钥交换的时候使用它。

按照上述配置,整个SSL部署会更加安全,使用SSL数字证书验证工具:https://infinisign.com/tools/sslcheck,如正确配置,评估成绩可达到最高A+