HTTPS 证书(SSL)

HTTPS certificate (SSL)

是否可以创建我自己的在浏览器中受信任的 SSL 证书?因此,如果用户进入我的网站,他们不需要信任我的网站。就像专业网站一样?

我正在使用 nginx。

如果您想创建自己的证书颁发机构,我帮不了您。但如果你只是想要一个免费的 SSL 证书,那很简单:你可以使用 Letsencrypt。 例如,如果您可以通过 SSH 访问您的服务器,则可以使用 Certbot.

然后只需下载它用于您的分发并键入:

./certbot-auto certonly --webroot -w /var/www/your_web_root -d yourdomain.com

然后您需要做的就是更改您的 nginx 站点配置,使其支持 SSL。

你可以看看我在github上的例子:

https://github.com/NLDev/dotfiles/blob/master/nginx.conf

此配置在 SSL-Labs 测试中得分为 A+。

或者您可以使用这个精简版:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name example.com;

    return 301 https://example.com$request_uri;
    location ~ /.well-known {
           allow all;
    }
}

server {
    listen 443 ssl default_server;

    root /var/www/example.com/public_html;
    index index.html index.htm index.php;

    server_name example.com;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location /.well-known/acme-challenge {
            root /var/www/letsencrypt;
    }

    location ~ /.well-known {
            allow all;
    }
}

用您的域替换 example.com 并更改

/var/www/example.com/public_html;

到您的网络根目录。

您不能创建一个,因为您不是浏览器信任的证书颁发机构。

你可以做的是从 Let'sEncrypt 免费获得一个。你必须每 90 天更新一次,但你可以很容易地在 cronjob 上完成它

您可以创建自己的自签名证书,但由于浏览器列表中没有根证书,浏览器不信任它。浏览器只会信任由第三方证书颁发机构颁发的预装可信根证书。

每个浏览器使用一组不同的证书颁发机构 (CA) 证书。您可以查看主流浏览器的可信根证书。

您应该从受信任的证书颁发机构获得浏览器可识别的 SSL 证书。要在您的 nginx 服务器上安装 SSL,您可以遵循此快速指南 - https://www.ssl2buy.com/wiki/how-to-install-ssl-certificate-on-nginx-server