laravel 框架制作网站安装ssl证书配置https后安全检测后报错降分的三个原因

近年来由于搜索引擎对于https协议越来越友好,对于网站的安全和优化越来越重要。对于个人站长来说申请一个免费的ssl来配置自己网站https尤为重要,在申请与配置过程中对于ssl的安全加密就有一定的要求,加密按照要求会有高的安全机制,也就是越高越好, laravel 框架制作网站安装ssl证书配置https后安全检测后报错降分的三个原因

liunx服务器配置免费SSL证书:CloudFlare SSL免费CDN加速使用方法与教程

注意:

1. 网站引用了不安全的网络资源

(1.1)首先服务器已经配置好了https并且开启了https
(1.2)env文件的APP_URL已经配置为https相应的网址,那么这里略过

APP_URL          = https://www.***.com
  经过排除法,发现laravel的url(),asset(),调用的全都是http下的资源。

(1.3) AppServiceProvider.php稍做修改,根据访问连接是http或https自动判断。

        public function boot()
        {
            if(env('REDIRECT_HTTPS'))
            {
                URL::forceScheme('https');
            }
        }
  这样引用的资源都改成HTTPS的资源了。

2. 没有优先使用FS系列加密套件,降级为B

配置指南里有提到两点:
(2.1) 需要配置符合PFS规范的加密套件,推荐配置:

ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;

(2.2)需要在服务端TLS协议中启用TLS1.2,推荐配置:

TLSv1 TLSv1.1 TLSv1.2。

Nginx配置进行调整如下:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

关闭SSLv2和SSLv3使用TLSv1 TLSv1.1 TLSv1.2这几个新一点的安全协议,任选其一可以只使用TLSv1.2,TLSv1.3。

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 30m;

3. 推荐配置:

server
{
    listen 80;
    server_name www.tinkpic.com; #server_name end
    rewrite ^(.*) https://www.tinkpic.com$1 permanent;           
    index index.html index.htm index.php; #index end
    #------SSL BEGIN
    listen 443 ssl http2;
    #listen [::]:443 ssl http2;
    #开启HTTP严格传输安全HSTS
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    #开启HTTP严格传输安全HSTS
    index index.php default.php default.htm default.html index.html index.htm;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/ssl/www.tinkpic.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/www.tinkpic.com.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 30m;
    #------SSL END
}

这样检测后的指数就如下图所示:

阅读 642

Comments