技术文档

Nginx的SSL配置优化 – HTTPS SSL 教程

一般网站使用的SSL证书都是RSA证书,这种证书基本都是2048位的密钥,但是证书密钥交换密钥必须要比证书密钥更长才能安全,而默认的只有1024位,所以我们需要手动生成一个更强的密钥。所以配置之前,如果没有DH-key就需要做下面的步骤

Nginx的SSL配置优化 – HTTPS SSL 教程

有screen则跳过,没则安装

yum-yinstallscreen11

生成4096位的DH-Key(证书密钥交换密钥)

screen-SDH openssldhparam-outdhparam.pem40961212

执行之后需要等很长时间,总之慢慢等,网路出现中断,可以执行下面命令重新连接安装窗口

screen-rDH11

熬过漫长的等待时间后,建议生成的dhparam.pem文件最好跟SSL证书放在一起方便管理。

有了证书密钥交换密钥后,我们继续配置,打开网站所对应的Nginx的conf配置文件

假设我的配置文件是在 /usr/local/nginx/conf/vhost 的目录

vim/usr/local/nginx/conf/vhost/www..conf11

配置如下,只包含了ssl的部分,未包含其他比较重要的配置,如缓存、跳转、防盗链和强制HTTPS等等

server{ listen443sslhttp2; add_headerStrict-Transport-Security"max-age=6307200;includeSubdomains;preload"; add_headerX-Frame-OptionsDENY; add_headerX-Content-Type-Optionsnosniff; ssl_certificate/usr/local/nginx/conf/vhost/sslkey/www..crt; ssl_certificate_key/usr/local/nginx/conf/vhost/sslkey/www..key; ssl_trusted_certificate/usr/local/nginx/conf/vhost/sslkey/chaine.pem; ssl_dhparam/usr/local/nginx/conf/vhost/sslkey/dhparam.pem; ssl_session_timeout10m; ssl_protocolsTLSv1TLSv1.1TLSv1.2; ssl_ciphersEECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_cipherson; ssl_session_cachebuiltin:1000shared:SSL:10m; ssl_session_ticketson; ssl_staplingon; ssl_stapling_verifyon; resolver8.8.8.88.8.4.4valid=300s; resolver_timeout5s; ··· }12345678910111213141516171819202122232425262728293031321234567891011121314151617181920212223242526272829303132

各行解析:

server{ listen443sslhttp2;#使用HTTP/2,需要Nginx1.9.7以上版本add_headerStrict-Transport-Security"max-age=6307200;includeSubdomains;preload";#开启HSTS,并设置有效期为“6307200秒”(6个月),包括子域名(根据情况可删掉),预加载到浏览器缓存(根据情况可删掉)add_headerX-Frame-OptionsDENY;#禁止被嵌入框架add_headerX-Content-Type-Optionsnosniff;#防止在IE9、Chrome和Safari中的MIME类型混淆攻击ssl_certificate/usr/local/nginx/conf/vhost/sslkey/www..crt; ssl_certificate_key/usr/local/nginx/conf/vhost/sslkey/www..key;#SSL证书文件位置ssl_trusted_certificate/usr/local/nginx/conf/vhost/sslkey/chaine.pem;#OCSPStapling的证书位置ssl_dhparam/usr/local/nginx/conf/vhost/sslkey/dhparam.pem;#DH-Key交换密钥文件位置#SSL优化配置ssl_protocolsTLSv1TLSv1.1TLSv1.2;#只允许TLS协议ssl_ciphersEECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;#加密套件,这里用了CloudFlare'sInternetfacingSSLcipherconfigurationssl_prefer_server_cipherson;#由服务器协商最佳的加密算法ssl_session_cachebuiltin:1000shared:SSL:10m;#SessionCache,将Session缓存到服务器,这可能会占用更多的服务器资源ssl_session_ticketson;#开启浏览器的SessionTicket缓存ssl_session_timeout10m; #SSLsession过期时间ssl_staplingon; #OCSPStapling开启,OCSP是用于在线查询证书吊销情况的服务,使用OCSPStapling能将证书有效状态的信息缓存到服务器,提高TLS握手速度ssl_stapling_verifyon;#OCSPStapling验证开启resolver8.8.8.88.8.4.4valid=300s;#用于查询OCSP服务器的DNSresolver_timeout5s;#查询域名超时时间··· }12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758591234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859

配置完后请记得重启Nginx!

CentOS 6.x:

servicenginxrestart11

CentOS 7.x:

systemctlrestartnginx

 

GDCA致力于网络信息安全,已通过WebTrust 的国际认证,是全球可信任的证书签发机构。GDCA专业技术团队将根据用户具体情况为其提供最优的产品选择建议,并针对不同的应用或服务器要求提供专业对应的HTTPS解决方案。

GDCA一直以“构建网络信任体系,服务现代数字生活”的宗旨,致力于提供全球化的数字证书认证服务。其自主品牌——信鉴易 SSL证书:包括 OVSSL、EVSSL、代码签名证书等。为涉足互联网的企业打造更安全的生态环境,建立更具公信力的企业网站形象。

©2020-2024   万云SSL证书  (www.sslssl.com.cn)  万云科技   豫ICP备2020034358号-10