##介绍

我们通过Certbot自动化完成SSL证书注册和配置文件修改步骤,从而在Web服务器上启用加密的HTTPS。目前,获取和安装证书的整个过程在Apache和Nginx上都是完全自动化的。
在本教程中,您将使用Certbot在Ubuntu 16.04上获取Nginx的Let’s Encrypt免费SSL证书,并将证书设置为自动续订。

先决条件

要学习本教程,您需要:
Ubuntu 16.04服务器
域名,本教程将example.com贯穿始终。
example.com指向服务器的公共IP地址的A记录。
在Ubuntu 16.04上安装Nginx。

第1步 – 安装Certbot

使用Let’s Encrypt获取SSL证书的第一步是在服务器上安装Certbot软件。
首先,添加存储库。
sudo add-apt-repository ppa:certbot/certbot

按ENTER接受。然后,更新包列表以获取新存储库的包信息。
sudo apt-get update

最后,apt-get安装Certbot的Nginx软件包。
“`sudo apt-get install python-certbot-nginx

<pre><code class="line-numbers">Certbot现在可以使用了,但是为了让它为Nginx配置SSL,我们需要验证一些Nginx的配置。
## 第2步 – 设置Nginx
Certbot可以自动为Nginx配置SSL,但它需要能够server在配置中找到正确的块。它通过查找server_name与您请求证书的域匹配的指令来完成此操作。
如果您刚开始使用新的Nginx安装,则可以更新默认配置文件。用它nano或你喜欢的文本编辑器打开它。
“`sudo nano /etc/nginx/sites-available/default“`
找到现有`server_name`行并_使用您的域名替换下划线:
在`/etc/nginx的/`网站可用`/`默认

“`server_name example.com www.example.com;“`

保存文件并退出编辑器。
然后,验证配置编辑的语法。
“`sudo nginx -t“`
如果您收到任何错误,请重新打开该文件并检查拼写错误,然后再次测试。
配置的语法正确后,重新加载Nginx以加载新配置。
“`sudo systemctl reload nginx“`
Certbot现在可以找到正确的server块并更新它。接下来,我们将更新防火墙以允许HTTPS流量。
## 第3步 – 通过防火墙允许HTTPS
如果ufw启用了防火墙,则必须按照先决条件指南的建议,调整设置以允许HTTPS流量。幸运的是,`Nginx ufw`在安装时注册了一些配置文件。
您可以键入以下内容来查看当前设置:
“`sudo ufw status“`
它可能看起来像这样,这意味着只允许HTTP流量进入Web服务器:

Output
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere<br />
Nginx HTTP ALLOW Anywhere<br />
OpenSSH (v6) ALLOW Anywhere (v6)<br />
Nginx HTTP (v6) ALLOW Anywhere (v6)

为了进一步允许HTTPS流量,我们可以允许Nginx Full配置文件,然后删除冗余Nginx HTTP配置文件限额:
```sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
</code></pre>

您的状态现在应该如下所示:

<pre><code class="line-numbers">sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
</code></pre>

我们现在准备运行Certbot并获取我们的证书。

<h2>第4步 - 获取SSL证书</h2>

Certbot通过各种插件提供了多种获取SSL证书的方法。Nginx插件将负责重新配置Nginx并在必要时重新加载配置:
<code>sudo certbot --nginx -d example.com -d www.example.com</code>
这<code>certbot</code>与<code>--nginx</code>插件一起运行,<code>-d</code>用于指定我们希望证书有效的名称。
如果这是您第一次运行certbot,系统将提示您输入电子邮件地址并同意服务条款。执行此操作后,certbot将与Let的加密服务器通信,然后运行质询以验证您是否控制了您要为其申请证书的域。
如果成功,certbot将询问您希望如何配置HTTPS设置。

<pre><code class="line-numbers">Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
<h2>change by editing your web server's configuration.</h2>
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
</code></pre>

选择你的选择然后点击ENTER。配置将更新,Nginx将重新加载以获取新设置。certbot将结束一条消息,告诉您进程是否成功以及您的证书存储位置:
```Output
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2017-10-23. To obtain a new or tweaked version of this
certificate in the future, simply run certbot again with the
"certonly" option. To non-interactively renew <em>all</em> of your
certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

您的证书已下载,安装和加载。尝试使用重新加载您的网站https://并注意浏览器的安全指示器。它应该表明该网站已正确保护,通常带有绿色锁定图标。如果使用SSL Labs Server Test测试服务器,它将获得A级。
让我们通过测试更新过程来完成。
```

第5步 - 验证Certbot自动续订

我们的加密证书只有90天有效。这是为了鼓励用户自动执行证书续订过程。certbot我们安装的软件包通过systemd计时器每天运行两次“certbot renew”来为我们解决这个问题。在非系统发行版上,此功能由放置在其中的脚本提供/etc/cron.d。此任务每天运行两次,并将续订任何在到期后30天内的证书。
要测试更新过程,您可以执行以下操作certbot:
sudo certbot renew --dry-run
如果您没有看到任何错误,那么您已经完成了设置。必要时,Certbot将续订您的证书并重新加载Nginx以获取更改。如果自动续订过程失败,我们的加密将向您指定的电子邮件发送一条消息,并在您的证书即将过期时发出警告。
结论
在本教程中,您安装了Let's Encrypt客户端certbot,为您的域下载了SSL证书,配置了Nginx以使用这些证书,并设置了自动证书续订。如果您对使用Certbot有其他疑问,他们的文档是一个很好的起点。

使用certbot自动申请续期SSL证书(Ubuntu)相关推荐

  1. 博客主机_自动申请续期免费证书

    原创:博客主机_自动申请续期免费证书 一不留神,之前的域名证书过期了.由于是Let's Encrypt免费证书,需要3个月手工续期一次,一年就得4次,还是有点麻烦,搞成自动化多好. 以下操作均在服务器 ...

  2. 使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书

    使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书 首先安装 Python 3 yum install -y python39 创建并激活虚拟环境 mkdir -p /mnt/cert ...

  3. 无80和443端口下申请域名SSL证书(适用于 acme.sh 和 certbot)

    无80和443端口下申请域名SSL证书 文章目录 无80和443端口下申请域名SSL证书 SSL 证书申请的方式 通过 DNS 申请 SSL 证书 获取个人域名 acme.sh 方式 certbot ...

  4. 阿里云申请免费 SSL证书 https 的图文教程

    一.申请免费SSL证书: 1.登录阿里云: 2.进入管理控制台--云盾控制台--SSL证书: 二.选择Symantec证书: 1.接上一步,找到证书服务之后,点击进入证书服务页面,然后点击右上角的&q ...

  5. startssl申请免费ssl证书

    申请过程步骤蛮多的,对于像我这样的小白来说还是截图+文字记录下比较好.浏览器是firefox. 1.打开http://www.startssl.com/ 2.点击StartSSL Free(Class ...

  6. 使用阿里云二级域名申请免费ssl证书 nginx配置https

    一. 创建二级域名 登录阿里云控制台,选择域名,显示你的域名列表,选择你需要解析的域名,后面选择解析,添加记录 1.域名列表 2.这个解析解析二级域名 或者直接使用一级域名 3.申请免费ssl证书在阿 ...

  7. 手机登录群晖出现ssl证书不可信_教你申请免费SSL证书以及安全访问群晖的方法教程...

    教你申请免费SSL证书以及平安拜候群晖的方式教程% B+ _$ r" \! L" @) q " i2 v! z" P0 `3 X: W  l: @. p本人小白 ...

  8. 为什么华夏名网的主机搭建的wordpress博客申请了SSL证书并安装really-simple-ssl不成功导致网站内页不能正常显示?

    为什么华夏名网的主机搭建的wordpress博客申请了SSL证书并安装really-simple-ssl不成功导致网站内页不能正常显示? 我的博客是华夏名网的虚拟机搭建的wordpress博客申请了S ...

  9. 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期

    本文永久地址 为什么要用HTTPS 相关简介 Let's Encrypt Certbot 便宜SSL 获取HTTPS证书 命令行 安装Certbot 申请证书 图形化 部署HTTPS证书 设置HTTP ...

最新文章

  1. HTML实现折现图完整源码及效果图
  2. 滴滴人脸识别申诉照片怎么拍_滴滴司机理发被停账号,平台规则到底如何遵守才能避免踩坑?...
  3. 超过 150 个最佳机器学习,NLP 和 Python教程
  4. python 为什么元组中只包含一个元素时,需要在元素后面添加逗号?(消除歧义)
  5. Tomcat多实例和负载均衡
  6. JAVA开发环境及其开发
  7. Git commit your changes or stash them before you can merge
  8. c简单的链表错误及改正
  9. hdu 5380 Travel with candy(双端队列)
  10. (转)Spring Boot(七):Mybatis 多数据源最简解决方案
  11. Spark: Structured + hive(Jdbc方式)卡死
  12. mysql比较两个表中count_mysql两个表统计查询问题?
  13. 决策树准确率低原因_决策树算法
  14. python合并文件夹_python实现将两个文件夹合并至另一个文件夹(制作数据集)
  15. 阿里巴巴与山东省人民政府签署战略合作协议
  16. Swift 网络请求——Moya的使用
  17. Java前叉夹器_大器晚成 SRAM S-900直装夹器评测
  18. 使用redis所维护的代理池抓取微信文章
  19. vue 项目中实现按钮防抖
  20. STL--C++中 destory() 和deallocate()以及delete函数的相关性和区别性,destorydeallocate

热门文章

  1. 演练 制作爱奇异视频播放列表 0929
  2. dj鲜生-01-新建项目-配置数据库
  3. django-500错误页面
  4. jquery-索引2019
  5. Silverlight:CreateFromXAMLDownloader
  6. Python的简史:一切从讨厌花括号开始
  7. hadoop day 6
  8. (内联元素和块级元素)
  9. #line预编译字分析
  10. 关于js字符串替换的一道笔试题目