首页>安全资讯>https配置方法与步骤(Apache和Nginx)

https配置方法与步骤(Apache和Nginx)

大应该家都知道CA是电子商务认证中心,有保密性、认证性、完整性等作用,还可以识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。那么客户端是如何验证CA证书是可信任的?

Apache https配置方法

这里只介绍Apache2(以2.4为例)。

HTTPS的基本配置可以直接套用默认配置,只是要改一下证书文件的部分:

1、SSLEngine on

2、SSLCertificateFile /path_to_ssl/yoursite.crt

3、SSLCertificateKeyFile /path_to_ssl/yoursite.key

4、SSLCertificateChainFile /path_to_ssl/server-ca.crt

其中yoursite.crt和yoursite.key就是前面说过的私钥和域名证书。

重点说一下server-ca.crt,这个就是前面谈到商业证书时提到的中间证书链(包括CA根证书)。对于Let’s Encrypt这样的免费证书,这个就是Let’s Encrypt的证书(见旧文),对于自签名证书,这一项可以去掉。

中间证书链的生成方法如下:

cat provider.crt provider-parent.crt root.crt > server-ca.crt

很简单,就是把那一堆证书串起来生成一个证书文件即可,不过需要注意顺序,从最低级的证书(你的域名证书的上一级)开始到最高级的CA根证书。

Apache从2.2.12开始支持SNI,可以为多个域名的虚拟主机使用各自独立的证书,用法与HTTP虚拟主机类似,只需要在每个虚拟主机配置里加上相应的证书配置即可。

需要注意的是:WinXP,JAVA6,Android 2.3等不支持SNI。

最后,如我在去年的旧文里所说,SSLv2/v3之类的协议和某些SSL加密算法已经不再安全,所以在没有特定的兼容性需要的情况下,需要配置禁用这些不安全的选项。

在全局配置(注意,不是单个虚拟主机配置里)里加上:

1、SSLProtocol TLSv1 +TLSv1.1 +TLSv1.2

2、SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES128-SHA:!DHE-DSS-AES128-SHA256:!DHE-RSA-AES256-SHA256:!DHE-DSS-AES256-SHA:!DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

以上协议和加密算法都是目前还安全的,并且提供了最大可能的兼容性。未来如果出现新的安全问题,请自行调整。

Nginx https配置方法

基本上在旧文里都说过了,这里再总结一下。

相比Apache的配置,Nginx没有单独的中间证书链项目,所以是把中间证书链和域名证书串在一起作为完整的域名证书来用:

cat yoursite.crt server-ca.crt > new_yoursite.crt

配置HTTPS:

1、ssl on;

2、ssl_certificate "/path_to_ssl/new_yoursite.crt;

3、ssl_certificate_key "/path_to_ssl/yoursite.key;

SNI配置见旧文,从略。

全局安全配置:

1、ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

2、ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;

配置完成后重启服务即可生效。

不论是用Apache还是Nginx,都建议配置完HTTPS以后到SSL Labs验证一下安全性。

如果用户遇到的问题不能解决,可通过wosign官网客服寻求帮助,凡是选择wosign ssl证书的网站用户,wosign可提供免费一对一的ssl证书技术部署支持,免除后顾之忧。

相关资讯

配置Apache支持https的方法

Sl是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全。也就是说在SSL下http传输是安全的,下面主要讲述在windows下apache配置SSL以实现http转换为https。

iOS APP配置HTTPS流程

您的APP启用HTTPS了吗?距离2017年1月1日苹果iOS强制要求HTTPS连接还有不到1个月的时间,是否支持HTTPS直接影响APP能否在苹果商店顺利上架。本文将帮助您更快实施HTTPS!

ios 配置https的方法

一般来讲如果app用了web service,我们需要防止数据嗅探来保证数据安全。通常的做法是用ssl来连接以防止数据抓包和嗅探。其实这么做的话还是不够的。我们还需要防止中间人攻击(不明白的自己去百度)。攻击者通过伪造的ssl证书使app连接到了伪装的假冒的服务器上,这是个严重的问题!那么如何防止中间人攻击呢?

最新资讯

如何实现http自动跳转到https?

如何选择OV ssl通配符证书?

HTTPS是如何保障数据安全的?

HTTPS整套加密机制是如何实现的?

https加密真的可以保护用户隐私吗?

自签名的SSL证书怎么样,安全吗?

标签推荐:ssl证书过期 | 阿里云ssl证书 | https证书申请| 数字签名技术| 火狐浏览器证书| ssl证书更新