建站

如何免费启用https

作者头像 刘宇帅
3093 0

正如大家所看本站使用了https,这篇文章就来讲下如何免费为自己的站点添加https支持。 Let's Encrypt是一个提供免费https证书的认证机构,而Certbot是遵循其协议的客户端程序。而本站就是使用的Certbot Let's Encrypt的维基词条

Let's Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。 Let\'s Encrypt由互联网安全研究小组(缩写ISRG)提供服务。主要赞助商包括电子前哨基金会、Mozilla基金会、Akamai以及思科。2015年4月9日,ISRG与Linux基金会宣布合作。 用以实现新的数字证书认证机构的协议被称为自动证书管理环境(ACME)。Let's Encrypt宣称这一过程将十分简单、自动化并且免费。 2015年6月,Let's Encrypt得到了一个存储在硬件安全模块中的离线的RSA根证书。这个由IdenTrust证书签发机构交叉签名的根证书,被用于签署两个证书。其中一个就是用于签发请求的证书,另一个则是保存在本地的证书,这个证书用于在上一个证书出问题时作备份证书之用。因为IdenTrust的CA根证书目前已被预置于主流浏览器中,所以Let's Encrypt签发的证书可以从项目开始时就被识别并接受,甚至在用户的浏览器中没有信任ISRG的根证书时也没问题[15]。为了解决对Windows XP的兼容性,目前Let's Encrypt已经获取了另外两个根证书,原来的证书作为备用。

具体操作

  1. 打开Certbot官方下载地址https://certbot.eff.org/, 并根据页面上提示选择对应的系统下载相应的Certbot客户端
  2. 为下载的客户端添加可执行权限
    chmod a+x certbot-auto
  3. 生成证书

    • 生成泛域名证书
      ./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d "*.你的域名.com" --manual --preferred-challenges dns-01 certonly
    • 生成特定域名证书
      ./certbot-auto certonly --webroot -w /paht/to/save/certificate -d  www.你的域名.com
  4. 配置nginx https配置
    server {
    listen      443 ssl;
    ssl_certificate /etc/letsencrypt/live/lfuture.cc/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/lfuture.cc/privkey.pem;
    ……
    ……
    }

    http 80 端口配置

    server {
        listen 80;
        server_name lfuture.cc www.lfuture.cc default_server;
        return 301 https://www.lfuture.cc$request_uri;
    }

    reload nginx

    sudo nginx -s reload
  5. 配置定时更新 Let's Encrypt证书默认有效期是90天,所以我们需要定时更新证书,我们这里使用crontab来做,首先把certbot-auto移入PATH目录里(或者在crontab里配置全路径)。
    我们这里配置每天1点1分来更新证书。
    1 1 * * * certbot-auto renew

    执行上面命令会报以下错误

    Cert is due for renewal, auto-renewing...
    Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
    The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)

    这里是说Certbot在非交互模式下无法确认身份,需要实现一个hook校验,参考Pre and Post Validation Hooks
    由于在证书快要过期之前的一个月,Certbot就会发邮件通知,所以我们也可以在命令行完成更新。

    certbot-auto certonly --manual -d www.lfuture.cc
    nginx -s reload
作者头像

刘宇帅

非著名程序员,全栈开发工程师,长期专注系统开发与架构设计。

提示

功能待开通!


暂无评论~

相关文章

不备案的域名如何使用及存在的问题

未备案的域名是如何被限制的 国内域名解析限制的方式是由服务器运营商限制的,比如阿里,运营商会检查到服务器的流量的 HTTP 请求的域名信息,对未备案的域名添加限制,比如阿里会限制自己的提示备案的页面。 如何绕过运营商 既然运营商是根据 HTTP 请求里的域名做的限制,那么我如果没有域名呢?我们直接用 IP 访问显然是可以的,那么 HTTPS 呢?HTTPS 也是可以的,HTTPS 会对数据包做加密处理,运营商无法拿到请求的域名自然无法限制了。 BUT 虽然我们使用 HTTPS 绕过服务器运营商,但是有些平台或做自己的校验,比如 微信,你使用 HTTPS 搭建的站点在微信公众号、小程序中需要调用

ICP备案和ICP经营许可证有什么区别?

ICP备案就是网站备案或者域名备案。根据中华人民共和国信息产业部第十二次部务会议审议通过的《非经营性互联网信息服务备案管理办法》精神,在中华人民共和国境内提供非经营性互联网信息服务,应当办理备案!未经备案,不得在中华人民共和国境内从事非经营性互联网信息服务。而对于没有备案的网站将予以罚款或关闭。 ICP备案是免费的,只需要你在ICP备案网站注册了一个会员,提交网站所有人及管理人、负责人等相关真实资料即可取得ICP备案号。个人、企业、单位、团体、组织等均可申请。是指所有生成的域名和建设好的网站都要进入到国家工信部备案网站进行在线录入备案,系统会自动生成,如:京ICP备00001号。是所有网站都必

Centos 免密码登陆配置

免密码登录配置 在需要免密钥登录其他机器的机器上生成ssh公钥,并复制到需要被登录的机器上 ssh-keygen scp ~/.ssh/id_rsa.pub 目标机器用户名@目标机器ip:/home/目标机器用户名/ 在目标机器处理,首先用目标用户登录机器 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys //ssh免密钥登录会检测文件的权限,过于开放和保守都不行~ chmod 700 ~/.ssh 设置 SSH,打开密钥登录功能(默认一般是开通的,不需要修改) 修改/etc/

本站使用的博客系统前后端代码介绍及展示

这里主要介绍下本系统的主要技术及相关页面展示。 依赖框架 后台是 PHP 服务器,框架用的是Phalcon 博客后台管理平台使用Ant Design 博客前端展示界面使用UIkit 系统辅助工具 gitlab 自建gitlab用来代码管理, jenkins 代码上线管理等 相关页面展示 前端用户界面 这个就不展示了,直接点击站内链接欣赏就行了 后台管理界面 jenkins上线界面 技术标签 PHP phalcon mysql jenkins gitlab webpack react ant design UIkit