问题:CloudFlare 无效的 SSL 证书

我有一个 Laravel 8 应用程序。

我不知道我错过了什么。我正在尝试在我的服务器中部署一个站点。

我不断得到:

无效的 SSL 证书

https://mybabies.app/


server {
    listen 443;
    ssl_certificate /etc/nginx/ssl/mybabies.app.crt;
    ssl_certificate_key /etc/nginx/ssl/mybabies.app.key; 

    server_name mybabies.app www.mybabies.app;

    root /home/bheng/mybabies/public;

    index index.html index.htm index.php;

    charset utf-8;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

    client_max_body_size 500M;

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log on;
    access_log /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log error;
    error_page 404 /index.php;

    # Media: images, icons, video, audio, HTC
    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|mp3|ogg|ogv|webm|htc|woff2|woff)$ {
        expires 1M;
        access_log off;
        add_header Cache-Control "public";
    }

    # CSS and Javascript
    location ~* \.(?:css|js)$ {
        expires 1y;
        access_log off;
        add_header Cache-Control "public";
    }


    location / {
        #limit_req zone=one burst=2 nodelay;
        try_files $uri $uri/ /index.php?$query_string;
        add_header 'Access-Control-Allow-Origin' '*';
    }

}

我已经在 CloudFlare 中创建了crt+pem密钥并在以下两行中进行了配置:

ssl_certificate /etc/nginx/ssl/mybabies.app.crt;
ssl_certificate_key /etc/nginx/ssl/mybabies.app.key; 

编辑

当我暂停时

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

当我点击View Certificate时,我看到了

在此处输入图像描述


更新

我创建了证书

在此处输入图像描述

解答

要在 Cloudflare 和您的服务器之间建立安全连接,您需要在 Origin Certificates 页面中生成 Origin CA Certificate,但您是在 Client Certificates 中执行此操作的,这就是您收到错误的原因。

它们是完全不同的事物,具有不同的目的。阅读说明。

客户端证书

使用客户端证书保护和验证您的 API 和 Web 应用程序。使用 mTLS 规则阻止来自没有有效客户端 SSL/TLS 证书的设备的流量。

原产地证书

生成由 Cloudflare 签名的免费 TLS 证书以安装在您的源服务器上。原始证书仅对 Cloudflare 和您的原始服务器之间的加密有效。

生成 PEM 和 KEY 后,您需要将它们放入 .crt 和 .key 并加载到 nginx 配置中,就像以前一样。

listen 443;
ssl_certificate /etc/nginx/ssl/mybabies.app.crt;
ssl_certificate_key /etc/nginx/ssl/mybabies.app.key; 

现在连接 Full (strict) 应该可以工作了。

如果您想改用自签名证书,但仍利用 CF 和服务器之间的安全连接,请改用选项 Full(不严格)。通过使用灵活,您的访问者仍将使用 HTTPS,但 CF 和服务器之间将没有 SSL 连接,服务器会将其视为 HTTP 连接,因此不建议使用此选项。

更多信息:https://support.cloudflare.com/hc/en-us/articles/200170416-What-do-the-SSL-options-mean-

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐