Let's Encrypt 的服务相信很多人都知道了,我个人认为这是最好的免费 SSL 服务。下面内容即使如何在自己的网站上使用 Let's Encrypt 实现 SSL.

前提条件

  1. 自己拥有一个域名,备案了的域名最好。

  2. Ubuntu 16.04 的服务器,你可以到腾讯云或者阿里云购买这样的云主机。

  3. 将域名自己解析到你的 Ubuntu 16.04 的云主机 ip;注意如果你的域名没备案,在购买主机的时候,推荐大家购买腾讯云或者阿里云境外的主机。

1.安装 Certbot

Certbot 其实就是维护 Let's Encrypt 的 Package,在 Ubuntu 16.04 上,我们可以这样安装:

首先安装 Nginx:

sudo apt-get install nginx

以上过程,等待安装完毕就好。

然后添加 package repository

sudo add-apt-repository ppa:certbot/certbot

这个过程中,等待验证完毕,按下 ENTER 就好。然后更新 apt 源数据:

sudo apt-get update

最后,安装 Certbot 的 Nginx package:

sudo apt-get install python-certbot-nginx

2.配置 Nginx

安装完 Nginx 和 Certbot 之后,需要简单配置 Nginx 以便于 Let's Encrypt 能起作用:

sudo vi /etc/nginx/sites-available/default

使用 vi 编辑器打开 /etc/nginx/sites-available/default,可以直接删除里面的所有内容,然后再添加下面的配置:

server {
listen 80;
listen [::]:80;
server_name your-domain.com www.your-domain.com;
}

注意这里的 your-domain.com 换成你自己的域名。

保存退出之后,执行以下命令来检测 Nginx 的配置文件是否有错:

sudo nginx -t

如果出现类似 syntax ok 这样的语句,就说明 Nginx 的配置文件没有问题。之后就是重新加载 Nginx 的配置文件了:

sudo service nginx reload

3.签发 SSL 证书

前面的两大步配置完成,就可以使用 Let's Encrypt 签发 SSL 证书了:

sudo certbot --nginx -d your-domian.com -d www.your-domain.com

注意这里的 your-domain.com 换成你自己的域名。

如果你第一次运行 certbot 命令的话,你需要在弹出的窗口输入你的邮箱地址还有需要接受 Let's Encrypt 的协议,这样之后,你大概会看到下面的文字:

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
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

在上面这里选择 1 或者 2,我推荐大家直接选择 2,因为这个会直接将你的 nginx 文件配置好并且是会将 http 跳转到 https 的。

选择完毕之后,等待 SSL 生成完毕,就会有类似这样的输出:

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/your-domain.com/fullchain.pem. Your cert will
expire on 2017-12-29. 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 *all* 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

然后在上面的文字中,这个 /etc/letsencrypt/live/your-domain.com/fullchain.pem 路径很重要,就是你的 SSL 证书路径。

其实到这里,访问 your-domain.com 应该就可以看到 https 的效果了。

4.自动更新证书

因为 Let's Encrypt 签发的 SSL 证书有效期只有 90 天,所有在过期之前,我们需要自动更新 SSL 证书,而如果你使用最新的 certbot 的话,Let's Encrypt 会帮你添加自动更新的脚本到 /etc/cron.d 里,你只需要去检测一下这个命令是否生效就OK!

sudo certbot renew --dry-run

如果这个命令你没看到什么 error 的话,那就是没什么问题了。

总结

本文主要是介绍了在 Ubuntu 16.04 的云服务器上,使用 Nginx 作为服务器软件情况下,如何配置 Let's Encrypt 的 SSL 证书,使得网站得以支持 https 的过程。内容很浅,但是我觉得还是挺有用的。

ubuntu 16.04 配置ssl的更多相关文章

  1. Ubuntu 16.04配置SSL免费证书

    主要参考地址为:https://blog.csdn.net/setoy/article/details/78441613 本篇主要以Apache这个web服务器来讲解,所以前提必须要安装好apache ...

  2. Ubuntu 16.04配置OpenCV 3.1.0 for Java

    我们都知道,OpenCV是基于C++的开源计算机视觉库,但是从2.4.4版本开始提供了Java绑定,也就是说,我们也可以使用Java来开发基于OpenCV的计算机视觉应用.目前,最新的版本是3.1.0 ...

  3. Ubuntu 16.04配置国内高速apt-get更新源【转】

    转自:https://blog.csdn.net/twang0x80/article/details/79782753 Ubuntu 16.04下载软件速度有点慢,因为默认的是从国外下载软件,那就更换 ...

  4. Ubuntu 16.04配置国内高速apt-get更新源

    https://www.linuxidc.com/Linux/2017-11/148627.htm Ubuntu 16.04下载软件速度有点慢,因为默认的是从国外下载软件,那就更换到国内比较好的快速更 ...

  5. Ubuntu 16.04 配置安卓5.1编译环境

    Ubuntu 16.04版本 电脑cpu必须是64位 硬盘分配大约100G的空间 1.ubuntu中更新源 $ sudo apt-get update 2.安装 openjdk-8-jdk $ sud ...

  6. Ubuntu 16.04配置vncviewer

    网上有各种各样的教程,既混乱又复杂.这是提供一个亲自测试可用的配置方案,十分简单,桌面环境选用xfce,Ubuntu版本是16.04. 1 安装 Xfce 和 TightVNC sudo apt in ...

  7. ubuntu 16.04 配置静态ip 后默认的网卡eno1变成eth0了不能联网的问题解决

    我这次是在真实机器上面安装的ubuntu16.04 在配置了静态ip后不懂什么原因默认的eno1网卡变回了eth0网卡之后就不能上网, 同一个网段的其他集群节点也不能ping 通 因为ubuntu16 ...

  8. Ubuntu 16.04配置Java Web开发环境

    说明:在Linux下无论是开发还是服务器配置,我个人建议都安装二进制包版本的,优点:配置清晰,容易发现问题,性能调优方便等.缺点:配置太复杂.而其余平台的建议是一键安装版本,毕竟都是用于测试的,不会实 ...

  9. Ubuntu 16.04配置JDK

    此篇为http://www.cnblogs.com/EasonJim/p/7139275.html的分支页. 一.JRE和JDK JRE(Java Runtime Environment)是运行一个基 ...

随机推荐

  1. DSP学习资料:基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板

    基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板   一.板卡概述 高性能VPX信号处理板基于标准6U VPX架构,提供两个标准FMC插槽,适用于电子对抗或雷达信号等领域 ...

  2. apache 修改文件上传大小限制

    Windows 环境下的修改方法 ================================================================ 第一步:修改在php5下POST文件 ...

  3. jenkins 构建时显示git分支插件、显示构建分支插件

    参数化构建分支 1.安装插件:Git Parameter 2.找到我们在Jenkins中建立的工程,勾选“参数化构建过程”,并如下配置 3.在“源码管理”中如下配置 Jenkins构建完显示构建用户和 ...

  4. angularjs 代码结构两种写法

    1.当路由中不写controller的时候,controller写在对应的html表单中 2.若要写在路由中,如下 3.转到相应的路由(页面) 1.采用location服务 2.采用 transiti ...

  5. Python 3标准库第四章

    第四章日期和时间-----------------    不同于int.float和str,Python没有包含对应日期和时间的原生类型,不过提供了3个相应的模块,可以采用多种表示来管理日期和时间值. ...

  6. 【JZOJ2156】【2017.7.10普及】复仇者vsX战警之训练

    题目 月球上反凤凰装甲在凤凰之力附身霍普之前,将凤凰之力打成五份,分别附身在X战警五大战力上面辐射眼.白皇后.钢力士.秘客和纳摩上(好尴尬,汗). 在凤凰五使徒的至高的力量的威胁下,复仇者被迫逃到昆仑 ...

  7. 解决“Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id 'org.springframework.boot' not found.”

    升级老项目spring boot 和 cloud版本之后 gradle clean 报错:“Caused by: org.gradle.api.plugins.UnknownPluginExcepti ...

  8. LeetCode - 滑动窗口最大值

    给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内的 k 个数字.滑动窗口每次只向右移动一位. 返回滑动窗口中的最大值. 输入: nums ...

  9. 配置中心Apollo多环境部署

  10. ideal 工具jdk环境配置

    1.File  >>  Other Settings >> Default Project Structure ... 2.Project  >>  jdk_vie ...