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) 证书。您可以查看主流浏览器的可信根证书。
火狐浏览器:https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/included/
Chrome: http://www.chromium.org/Home/chromium-security/root-ca-policy
您应该从受信任的证书颁发机构获得浏览器可识别的 SSL 证书。要在您的 nginx 服务器上安装 SSL,您可以遵循此快速指南 - https://www.ssl2buy.com/wiki/how-to-install-ssl-certificate-on-nginx-server
是否可以创建我自己的在浏览器中受信任的 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) 证书。您可以查看主流浏览器的可信根证书。
火狐浏览器:https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/included/
Chrome: http://www.chromium.org/Home/chromium-security/root-ca-policy
您应该从受信任的证书颁发机构获得浏览器可识别的 SSL 证书。要在您的 nginx 服务器上安装 SSL,您可以遵循此快速指南 - https://www.ssl2buy.com/wiki/how-to-install-ssl-certificate-on-nginx-server