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

[原创] 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证书颁发...

    自动获取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证书

    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证书,...

    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), 之后还会让你输入...

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

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

    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