宝塔面板 Apache SSL配置A+ 等级教程

一、 写在前面

为什么要把 SSL 的配置安全等级设置为 A + 呢?我也不知道!好看?各取所需嘛,不同的人肯定有不同的理解!大家随意,文章教程本就是给那些需要的人!

新手建议修改任何文件之前,先备份!如造成生产环境或者数据异常,请自行负责!
本教程中配置后,无需再单独修改每个站点配置文件,后期直接创建站点并开启 ssl 即可!

二、 演示配置环境

演示配置环境:
宝塔 linux 面板 5.1(www.bt.cn)
Web 服务器环境 Apache2.4
至于宝塔安装教程不叙述,请自行自官方查询!
首先,请安装好宝塔面板,并在软件管理中安装 Apache2.4 环境,并添加好站点!点击站点设置,开启 SSL!(ssl 证书获取方式不多叙述,这里演示就用面板自带的自动申请 Let's Encrypt 免费证书)如下图:

三、 具体配置教程

1、前置先了解下宝塔面板的建立的站点 apache 环境下的路径:
apache2.4 安装路径:/www/server/apache(本文不需要,了解即可)
所有站点配置文件存放路径:/www/server/panel/vhost/apache/(本教程需要上传 / 新建 SSL 配置文件到此路径)
站点配置文件:/www/server/panel/vhost/apache / 你的域名. conf(本教程可能需要修改此文件)
2、SSL 安全设置
为 apache 添加安全配置:
创建 ssl.conf 文件,并录入以下内容:
#侦听 ssl 443 端口

  1. Listen 443  

#加密套件和 ciphers 选择,ciphers 的选择比较关键,这个配置中的 ciphers 支持大多数浏览器,但不支持 XP/IE6

  1. SSLCipherSuite  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  

#安全协议,禁用了不安全的 ssl 协议 SSL 2.0 和 SSL 3.0

  1. SSLProtocol All  -SSLv2 -SSLv3  

#启用优先级 正向保密

  1. SSLHonorCipherOrder  On  

#HSTS 配置,这个对评分影响也比较大,开启这个需要全站开启 HTTPS 同时也有弊端,开启 HSTS 后,很长时间就不能换回 HTTP 了,后面的数字即表示时间 (15768000 seconds = 6 months)

  1. Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"  
  2. Header always set X-Frame-Options DENY  
  3. Header always set X-Content-Type-Options nosniff  

将上述文件 ssl.conf 上传到 / www/server/panel/vhost/apache / 目录下
此处需要说明:
a. 此文件内容本是需要加载到 apache 的配置文件 httpd.conf 的内容中,即 / www/server/apache/conf/httpd.conf 但是宝塔面板的这个配置文件中已经加载一条命令直接读取 / www/server/panel/vhost/apache / 下的配置文件,所以这里就直接单独设置一个文件上传到这里即可!
b. 如果你是其他环境,或者自行编译安装的,请自行将以上内容添加到 httpd.conf 配置文件中!
3、站点 ssl 证书配置文件设置编辑 / www/server/panel/vhost/apache / 你的域名. conf 中,具体内容为:

  1. #SSL  
  2. SSLEngine On  
  3. ​SSLCertificateFile /etc/letsencrypt/live / 你的域名 / fullchain.pem  
  4. SSLCertificateKeyFile /etc/letsencrypt/live / 你的域名 / privkey.pem  

修改位置和方法:
#开启站点 ssl:
SSLEngine On
#站点 ssl 证书文件路径:
SSLCertificateFile /xxx/ssl/ssl.crt(不同地方下载的证书格式可能不同,自行根据你的文件存放路径和名称填写)
#ssl 证书私钥 key 路径:
SSLCertificateKeyFile /xxx/ssl/key.key(不同地方下载的证书私钥 key 格式可能不同,自行根据你的文件存放路径和名称填写)
#增加一项,ssl 的根证书位置,一般是需要这一项的,如没有根证书,可能某些浏览器会报不安全!(为什么默认这里没有,因为我这里是直接使用的宝塔后台 Let's Encrypt 免费证书,自动已经将根证书和你所申请域名的 ssl 证书合并在一个文件中)
SSLCertificateChainFile /xxx/ssl/root.crt
关于这里的一些配置,对 ssl 配置有一定了解的,基本都清楚怎么配置的,也比较适合喜欢折腾自己弄的朋友!
新手建议直接在宝塔后台操作就可以了,也避免出错!
当然你想自己弄,学点东西也是可以的!其他地方不清楚建议不要修改!
自此,配置基本技术,重启 apache 服务器,查看是否报错,如有报错,请检查是否修改不正确!
重启方法:

  1. service httpd restart  
  2. /etc/init.d/httpd restart  

四、 SSL安全等级测试

测试地址:https://www.ssllabs.com/ssltest/
Hostname 后输入域名,点击 Submit 开始测试,等待测试完成即可!

五、 写在后面

写这么多,也希望能帮到一些人吧!如有疑问,可以评论提出!这些内容均为自己一年多前研究摸索获得,参考较多内容,时间太长具体那些已经忘记!基本算是原创吧,如有转载,请注明出处!谢谢!希望大家多多支持!

标签: SSL, SSL A+, 宝塔面板, apache, apache ssl

已有 4 条评论

  1. 我的也A+啦!哈哈

  2. 请问大佬如何启用http2,另外为啥我在myssl检测一直是B,提示引用不安全内容,而在ssllabs检测却是A+

    1. 目前Apache下开启http2还没有研究,只知道需要Apache2.4版本才支持http2,最近一直没时间就没有研究具体怎么配置了

    2. 并且 我看你已经是A+了呀 还是用的Nginx

添加新评论


Warning: in_array() expects parameter 2 to be array, null given in /www/users/HK1590886/WEB/usr/plugins/TopLamuLeimu/Plugin.php on line 85