专栏首页搜云库技术团队给网站配置免费的HTTS证书

给网站配置免费的HTTS证书

最近看到网上说 https 的网站 Google 会优先收录,所以就抽时间记录下配置博客的过程。

ACME

使用 LetEncrypt 证书作为博客的 https 实现方式

acme.sh 实现了 acme 协议

可以从 letsencrypt 生成免费的证书

github https://github.com/Neilpang/acme.sh

主要步骤:

  1. 安装 acme.sh
  2. 生成证书
  3. copy 证书到 nginx/apache 或者其他服务
  4. 更新证书
  5. 更新 acme.sh
  6. 测试 https

1. 安装 acme.sh

安装很简单, 一个命令:

curl  https://get.acme.sh | sh

普通用户和 root 用户都可以安装使用. 安装过程进行了以下几步:

把 acme.sh 安装到你的 home 目录下:

cd ~/.acme.sh/

并创建 一个 bashalias, 方便你的使用: aliasacme.sh=~/.acme.sh/acme.sh

自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书.

2. 生成证书 并且完成验证

acme.sh 实现了 acme 协议支持的所有验证协议. 一般有两种方式验证: httpdns 验证.

这是使用 http 验证

cd ~/.acme.sh/
yum install socat

如果你还没有运行任何 web 服务, 80 端口是空闲的, 那么 acme.sh 还能假装自己是一个 webserver, 临时听在 80 端口, 完成验证:

sh acme.sh  --issue -d www.souyunku.com   --standalone

3. copy/安装 证书

前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.

注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.

mkdir -p /certs
cd /root/.acme.sh/www.souyunku.com
cp www.souyunku.com.cer /certs
cp www.souyunku.com.key /certs

配置Nginx

vim /usr/local/nginx/conf/nginx.conf

配置证书

server {
    listen 443;
    ssl on;
    ssl_certificate  /certs/www.souyunku.com.cer;
    ssl_certificate_key  /certs/www.souyunku.com.key;
}

http重定向到 https

server {
    listen       80;
    server_name www.souyunku.com;
    rewrite ^(.*) https://$server_name$1 permanent;
}

每次修改nginx配置文件后都要进行检查

/usr/local/nginx/sbin/nginx -t

4. 更新证书

目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.

5. 更新 acme.sh

目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.

升级 acme.sh 到最新版 :

acme.sh --upgrade

如果你不想手动升级, 可以开启自动升级:

acme.sh  --upgrade  --auto-upgrade

之后, acme.sh 就会自动保持更新了.

你也可以随时关闭自动更新:

acme.sh --upgrade  --auto-upgrade  0

6. 测试 https

启动Nginx

/usr/local/nginx/sbin/nginx

浏览器 访问 www.souyunku.com 会自动跳转到 https://www.souyunku.com

最后说一点,由于博客使用了七牛云的 http 协议的 cdn 导致博客内的静态资源不可用,最后又把七牛云的静态资源配置了 https

配置步骤

点击菜单:融合CDN-->域名管理-->配置--> HTTPS 配置

点击 SSL证书管理

https://portal.qiniu.com/certificate/ssl#cert

您可以在SSL证书服务页面申请或上传自有证书。

  • 内容 ( PEM格式 ) 对应证书内容 *.cre 后缀
  • 私钥 ( PEM格式 ) 对应证书内容 *.key 后缀

最后点击:强制 HTTPS 访问

开启后用户的 HTTP 请求会强制跳转到 HTTPS 协议进行访问。

本文分享自微信公众号 - 搜云库技术团队(souyunku)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 纸牌游戏中的洗牌是如何实现的?

    对于算法书买了一本又一本却没一本读完超过 10%,Leetcode 刷题从来没坚持超过 3 天的我来说,算法能力真的是渣渣。但是,今天决定写一篇跟算法有关的文章...

    数据森麟
  • 【Java基本功】浅析Java中IO流的概念和用法

    本文介绍了Java IO流的基本概念,使用方法,以及使用的注意事项等。帮助你更好地理解和使用Java的IO流。

    Java技术江湖
  • 服务注册与发现组件 Eureka 客户端实现原理解析

    在前面的文章介绍了,如何使用服务注册发现组件:Eureka,并给出使用示例。本文在此基础上,将会讲解 Eureka 客户端实现的内幕,结合源码深入实现的细节,知...

    aoho求索
  • 这个Nature推荐的代码海洋竟然有文章作者上传的所有可重现性脚本,涉及单细胞、微生物组、转录组分析、机器学习等相关

    可重复性研究一直是学术发表希望实现的方式,更有助于判断研究结果的准确性和帮助后人以此为基础进行深入研究。计算分析类型的研究,是能够比较容易实现可重复性的 - 只...

    生信宝典
  • 一份shell“圣经”收好

    不知道你是否在为突然想实现某个功能的小脚本而苦苦寻找答案,这里有一份“圣经”用来查看各种仅使用内置bash命令实现各种常用的功能和鲜为人知的用法。

    编程珠玑
  • 带你使用Windows上的Linux(Win10子系统)

    在过去我们需要在windows下使用liunx,要么装虚拟机要么装双系统模式。在Win10时代又增了一个方法,可以使用他的子系统。现在教大家如何安装以及使用。

    23号杂货铺
  • Linux 基础学习1

    [root@localhost ~]# echo $SHELL /bin/bash

    郭大侠
  • 19 个强大、有趣、好玩、又装B的 Linux 命令!

    输出一句话,有笑话,名言什么的 (还有唐诗宋词sudo apt-get install fortune-zh)

    程序员小明
  • 增强Jupyter Notebook的功能,这里有四个妙招

    Jupyter Notebook 是所有开发者共享工作的神器,它为共享 Notebooks 提供了一种便捷方式:结合文本、代码和图更快捷地将信息传达给受众。目前...

    用户2769421
  • matlab增强学习之小球不落地

    在利用之前FrozenLake环境训练当中那种面向对象方式管理程序时发现训练后期运行速度变慢、而且是肉眼可观察到的变慢,所以采用了matlab另一种程序文件管理...

    万木逢春

扫码关注云+社区

领取腾讯云代金券