HTTPS证书(SSL)

时间:2017-03-22 09:03:13

标签: ssl https web certificate

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

我正在使用nginx。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

如果您想创建自己的证书颁发机构,我无法帮助您。但如果你只想要一个免费的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;

到你的webroot。

答案 2 :(得分:0)

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

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

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