阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx Configuration 免费HTTPS加密证书

34次阅读
没有评论

共计 4341 个字符,预计需要花费 11 分钟才能阅读完成。

实验环境:CentOS Linux release 7.3.1611 (Core)

内核版本:Linux version 3.10.0-514.el7.x86_64

Nginx 版本:Nginx-1.13.0

Let’s Encrypt 是一个免费的、自动化、开放的证书颁发机构。由 Mozilla、Cisco、Chrome、facebook、Akamai 等众多公司和机构发起的,其安全稳定及其可靠。具体信息可以去 letsencrypt 官方网站了解详情。

今天我们就充分利用 Lets Encrypt 让你的网站实现 https 加密。

官网:https://letsencrypt.org/

1. 安装 certbot 及源扩展包

$ yum install -y epel-release

Certbot 是 Let’s Encrypt 官方指定推荐的客户端。通过 Certbot,你可以自动化部署 Let’s Encrypt SSL 证书,以便为网站加上 HTTPS 加密支持。$ yum install certbot
$ certbot certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
// 你是希望如何使用 ACME CA 进行身份验证?

——————————————————————————-

1: Place files in webroot directory (webroot)
// 将文件放在 webroot 目录
2: Spin up a temporary webserver (standalone)
// 使用临时 Web 服务器(独立目录)-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):1【选择 1 回车】Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):su@renwole.com【输入您的邮箱地址,用于紧急更新和安全通知】Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A【选择 A 回车同意服务条款,C 为拒绝】-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o:Y【您是否愿意分享您的电子邮件地址,建议选择 Y 回车】Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
to cancel): blog.renwole.com【输入域名回车】Obtaining a new certificate
Performing the following challenges:
http-01 challenge for blog.renwole.com
Select the webroot for blog.renwole.com:
-------------------------------------------------------------------------------
1: Enter a new webroot
// 输入网站绝对路径
-------------------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel):1【选择数字 1 回车】Input the webroot for blog.renwole.com: (Enter 'c' to cancel):/home/www/blog.renwole.com【输入网站所在绝对路径回车】Waiting for verification...
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0001_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0001_csr-certbot.pem

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/blog.renwole.com/fullchain.pem. Your cert
will expire on 2017-08-09. To obtain a new or tweaked version of
this certificate in the future, simply run certbot again. To
non-interactively renew *all* of your certificates, run "certbot
renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF:
恭喜! 您的 SSL 证书和密钥链接已保存,你的证书将于 2017-08-09 到期。

注意:这里需要说明,在生成证书之前,你必须保证 nginx 443 端口是运行状态,否则会生成证书失败。

2. 自动续订

Certbot 可以配置为在证书过期之前自动更新证书。由于 Let’s Encrypt SSL 证书有效期时间为 90 天,所以建议您利用此功能。您可以通过运行以下命令来测试证书的自动续订:

$ sudo certbot --nginx certonly

如果以上正常工作,你可以通过添加运行以下操作的 cron 或 systemd 定时任务安排自动更新:

certbot renew

我们写一个自动执行脚本,建议每小时执行一次:

$ sudo crontab -e
添加以下内容:0 */6 * * * /usr/bin/certbot renew --quiet && /bin/systemctl restart nginx
保存并退出!通过命令查看是否添加成功:$ crontab -l
0 */6 * * * /usr/bin/certbot renew --quiet && /bin/systemctl restart nginx
重启 crontab

$ systemctl status crond.service
$ systemctl restart crond.service

通过命令观察 crontab 是否执行:

$ tail -f /var/log/cron

证书是否续订成功,可以通过以下命令管理查看证书信息:

$ certbot certificates

更多 Certbot 命令请参阅官方文档 https://certbot.eff.org/docs/

3. 配置 nginx.conf
接下来修改 Nginx 配置文件,修改 sever 段,去掉相应注释,将生成的 SSL 证书填写到 ssl_certificate 后面,将生成的密钥填写到 ssl_certificate_key 后面,保存并重启 nginx 服务器即可。

# vi /usr/local/nginx/conf/nginx.conf

server {
 listen 443 ssl;

 ssl_certificate /etc/letsencrypt/live/blog.renwole.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/blog.renwole.com/privkey.pem;

# ssl_session_cache shared:SSL:1m;
 ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
 ssl_prefer_server_ciphers on;

# location / {
 # root html;
 # index index.html index.htm;
 # }
 }

使用谷歌浏览器访问 https://blog.renwole.com/ 可以看到绿色的安全小锁图标,说明网站已经 https 加密成功。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计4341字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中