`
yhz61010
  • 浏览: 564330 次
  • 来自: -
博客专栏
63c13ecc-ef01-31cf-984e-de461c7dfde8
libgdx 游戏开发
浏览量:12289
社区版块
存档分类
最新评论

[原创] Let's Encrypt 免费开启 HTTPS 之旅

阅读更多
Let's Encrypt 这个来头超大的,免费推广 HTTPS 的项目,实在是利国利民的大好事。现在就让我们开启自己的 HTTPS 之旅吧。

官网介绍:https://letsencrypt.org/

前提:需要有域名解析到自己的服务器,否则无法申请到证书。虽然网上有说最好使用海外的 DNS, 但是实测 DNSPod 是可以的。

下面来具体说一下 Ubuntu 下 Apache 如何使用 Let's Encrypt 开启 HTTPS。

申请 Let's Encrypt 免费 SSL 证书

首先,先停止 Apache 服务:
systemctl stop apache2
然后执行如下命令:
git clone https://github.com/certbot/certbot
cd certbot
./certbot-auto --apache --email <your email> -d m3q.xyz -d www.m3q.xyz
执行之后,程序会自动检测系统并下载必要软件。这个命令使用了 Apache 插件,为 m3q.xyz 和 www.m3q.xyz 这两个地址自动开启并配置了 HTTPS。注意:Apache 插件目前支持 Debian 系,即 Ubuntu 12.04+ 或者 Debian 7+。

其它插件说明:
http://letsencrypt.readthedocs.io/en/latest/using.html#getting-certificates-and-choosing-plugins

注意:如果使用是的国内的 VPS 或云服务器的话,在自动下载必要软件时,可能会一直卡在 “Installing Python packages...” 这个地方,原因大家应该懂的, Python 源被和谐了。因此可以替换掉 PyPI 源(可以使用 豆瓣 或 阿里云 的镜像源,推荐使用豆瓣镜像源,因为这个源数据更加新一些)。新建或编辑如下文件: ~/.pip/pip.conf(注意,如果文件夹不存在的话,要先创建文件夹再创建文件),并添加如下内容:
# 豆瓣源
[global]
index-url=https://pypi.doubanio.com/simple/

[install]
trusted-host=pypi.doubanio.com
# 阿里云源
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com
官网提及的其它镜像源如下:https://www.pypi-mirrors.org/

即使使用了镜像源,速度也可能挺慢的,耐心等一下吧,至少不会出现无法下载的情况。

最终执行完结果如下:
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/m3q.xyz/fullchain.pem. Your cert will expire
   on 2017-06-22. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot-auto again with the
   "certonly" option. To non-interactively renew *all* of your
   certificates, run "certbot-auto 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
成功之后,我们就可以访问自己的网站了:


其它下载方法
也可以不下载源代码,直接从官网下载可执行文件:
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

如果不希望使用插件,而仅仅是生成证书,自己进行 SSL 配置的话,可以使用如下命令:
./certbot-auto certonly --standalone --email <your email> -d m3q.xyz -d www.m3q.xyz
生成的证书位置如下:/etc/letsencrypt/live/m3q.xyz/
其中有四个证书文件:
cert.pem - Apache 服务器端证书(若 Apache < 2.4.8 对应 SSLCertificateFile)
chain.pem - Apache 根证书和中继证书(若 Apache < 2.4.8 对应 SSLCertificateChainFile)
fullchain.pem - Nginx 所需要 ssl_certificate 文件(若 Apache >= 2.4.8 对应 SSLCertificateFile)
privkey.pem - 安全证书 KEY 文件(私钥)

修改 Apache SSL 配置文件:
vim /etc/apache2/sites-available/default-ssl.conf
按如下要求修改配置:
SSLCertificateFile /etc/letsencrypt/live/50d.win/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/50d.win/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/50d.win/chain.pem
保存之后,重启 Apache 即可:
systemctl start apache2
现在,我们的网站已经可以同时使用 HTTP 和 HTTPS 访问了,如果我们希望仅使用 HTTPS 访问网站的话,我们可以将 HTTP 跳转到 HTTPS。

添加转发规则(需要启用 rewrite 模块):
创建或编辑 .htaccess 文件,并追加如下内容:
RewriteEngine on
#RewriteCond %{HTTPS} off
#RewriteCond %{SERVER_PORT} 80
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
也可以将上述内容写到 <VirtualHost> 中。

续期
虽然 Let's Encrypt 证书的有效期只有 90 天,不过我们可以手动或自动的进行续期。
下面这个命令是测试是否可以“续期”,并不会保存证书:
./certbot-auto renew --dry-run --agree-tos
若上述命令执行成功,可以继续执行如下命令进行续期操作:
./certbot-auto renew --quiet
可以将自动续期的命令加到 cron 或 systemd 中,实现自动续期功能。

提示:官网建议每天执行两次续期命令,并且选择一个随机时间执行续期任务,以防止任何未知原因导致无法正常续期。不要担心每天执行续期命令会有什么负面影响,因为只有当证书真正需要续期时,续期命令才会真正起作用。

参考网址:
https://github.com/certbot/certbot
https://certbot.eff.org/#ubuntuxenial-apache
https://certbot.eff.org/docs/using.html#where-are-my-certificates
http://www.laozuo.org/7676.html
https://www.zyx.im/no-response-of-installing-python-packages/
  • 大小: 4.9 KB
0
0
分享到:
评论

相关推荐

    windows Let's Encrypt工具

    Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,靠谱! 3、Let's Encrypt安装部署简单、方便,目前Cpanel、Oneinstack等面板都已经集成了...

    Let’s Encrypt免费SSL证书获取以及自动续签

    ### Let’s Encrypt 免费 SSL 证书获取及自动续签详解 #### 一、前言 随着互联网安全意识的提高,HTTPS 协议已经成为网站标配。对于个人开发者和小型项目而言,免费且易于管理的 SSL 证书尤为重要。Let’s Encrypt ...

    Let's Encrypt Windows认证客户端

    Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起。 Let's Encrypt证书有效期三个月,每三个月需要续签证书。 Let's Encrypt注册主域名认证频率...

    Https 之 Let's Encrypt

    ### HTTPS之Let’s Encrypt #### 一、简介 随着网络安全意识的提高,越来越多的网站开始采用HTTPS协议替代传统的HTTP协议,以确保数据传输的安全性。在这个过程中,Let’s Encrypt作为一个公共且免费的SSL证书颁发...

    使用Golang开发的HTTPS反向代理,内嵌Let's Encrypt自动证书,支持多组代理.zip

    Let's Encrypt是一个免费、自动化、开放的证书颁发机构,它使用ACME(Automatic Certificate Management Environment)协议来自动化证书的申请、验证和管理过程。通过集成Let's Encrypt,我们的反向代理能够自动为每...

    letsencrypt-win-simple.V1.9.3(Let's Encrypt For Windows)

    Let's Encrypt是可以签发免费SSL/TLS证书的CA机构,它是为普及HTTPS而发起的,推动了基础DV SSL证书的普及。其证书已经被Mozilla、Google、Microsoft和Apple等主流浏览器支持,只需要web服务器配置好HTTPS证书,...

    自动获取Let's Encrypt的免费SSL证书

    标题中的“自动获取Let's Encrypt的免费SSL证书”是指一种使用自动化工具来申请并安装Let's Encrypt提供的免费安全套接层(SSL)证书的过程。Let's Encrypt是一个公共证书颁发机构,它提供免费的SSL/TLS证书,以促进...

    Let's Encrypt证书申请

    Let's Encrypt 证书申请 SSL证书 SSL 详细说明如何申请Let's Encrypt证书

    Shell脚本方式获取 Let's Encrypt 的免费 SSL 证书

    标题 "Shell脚本方式获取 Let's Encrypt 的免费 SSL 证书" 涉及到的是如何使用脚本自动化申请和管理Let's Encrypt提供的免费SSL证书。Let's Encrypt是一个免费、自动化和开放的证书颁发机构(CA),它提供了一个简单...

    Let's Encrypt官网一键式免费申请ssl证书脚本

    Let's Encrypt官网一键式免费申请ssl证书脚本, 使用方法是放到linux环境下, 给出执行权限rwx即可 chmod -R 700 certbot-auto , 之后./certbot-auto执行, 过程中会让你选择apache(1)还是nginx(2), 之后还会让你输入...

    Let's Encrypt Win Simple V1.9.3.zip

    【Let's Encrypt Win Simple V1.9.3.zip】是一个包含Let's Encrypt证书自动化获取与部署工具的压缩包,主要用于简化在Windows系统上获取和安装免费SSL证书的过程。Let's Encrypt是一个非营利组织,它提供了免费且...

    Go-LetsProxy-快速获取Let'sEncrypt证书并提供反向代理

    Let's Encrypt是一个免费、自动化、开放的证书颁发机构,旨在使互联网上的加密通信变得更加普及和便捷。 在了解Go-LetsProxy之前,我们首先需要知道什么是SSL/TLS证书以及它的重要性。SSL/TLS证书是网站与客户端...

    Let's Encrypt 给网站加 HTTPS 完全指南certbot - cstopery1

    Let's Encrypt是一个免费、自动化且开放的证书颁发机构,它提供了一种简单的方式为网站获取和更新SSL/TLS证书。本文将详细讲解如何使用Let's Encrypt的certbot工具为您的网站启用HTTPS。 首先,让我们了解HTTPS的...

    基于let's encrypt的通配符证书.pptx

    介绍了使用letsencrypt 申请多种 https 免费证书的不同方法,其中用 dns 的方式申请通配符的证书比较省事,在有公网映射,内外网80和443端口映射不一致的环境下推荐使用。

    acme 协议, 可以从 let‘s encrypt 生成免费的证书

    简单来说acme.sh 实现了 acme 协议, 可以从 let‘s encrypt 生成免费的证书。 acme.sh 有以下特点: 一个纯粹用Shell(Unix shell)语言编写的ACME协议客户端。 完整的ACME协议实施。 支持ACME v1和ACME v2 支持...

    Go-用于自动获取证书LetsEncryptSSL证书的Golang库

    Let's Encrypt是一个免费、自动化且开放的证书颁发机构,旨在促进互联网上的安全通信。 **Let's Encrypt** Let's Encrypt是互联网安全研究集团(ISRG)提供的服务,它通过ACME协议(Automatic Certificate Management...

    ansible-letsencrypt:一个用于生成TLS证书并由Let's Encrypt签名的ansible角色

    Let's Encrypt 是一个免费、自动化且开放的证书颁发机构(CA),致力于使互联网上的所有网站都能安全地使用HTTPS。通过使用Let's Encrypt,用户可以免费获得和更新SSL/TLS证书,这些证书能够加密网站与客户端之间的...

    Certbot:从Let's Encrypt永久获得免费的HTTPS证书-开源

    Certbot是Let's Encrypt CA的功能齐全,易于使用的可扩展客户端。 它从由EFF,Mozilla和其他公司发起的开放证书颁发机构Let's Encrypt获取数字证书。 然后,该证书使浏览器可以验证Web服务器的身份,并确保通过Web...

    let's encrypt安装.docx

    标题中的“let's encrypt安装”指的是使用Let's Encrypt服务来为你的网站获取并安装免费的SSL证书。Let's Encrypt是一个非营利组织,提供自动化、安全且免费的SSL/TLS证书,旨在使互联网上的所有网站都能实现加密...

    lets encrypt.rar

    Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,靠谱! Let's Encrypt安装部署简单、方便,目前Cpanel、Oneinstack等面板都已经集成了Let's...

Global site tag (gtag.js) - Google Analytics