0基础自学linux运维-2.15-使用acme.sh安装免费ssl证书并自动更新

需求

公司想弄一个https最好是免费的,小公司如果付费的话一年也得花不少费用呢?

一般免费的ssl是30-60试用的,如果想一直免费下去,是不是写了下脚本,到期就重新购买一个新的就行了?还真有一个脚本名字叫“acme.sh”,它是自动给你更新证书的

acme.sh教程地址:

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

中文使用说明:https://github.com/Neilpang/acme.sh/wiki/说明

一、实验环境

1. centos6.5 64位,用yum安装的nginx

2. nginx的ssl证书

二、acme.sh安装

建议你拿一个线上在跑的域名,新建立一个二级域名来测试,我这里所有的安装都是直接使用root用户。

#用curl https://get.acme.sh | sh 安装发现有问题,改用win下用git bash执行git clone

#直接去官网手工下载zip包再上传

#安装依赖

yum install socat

cd /disk1/tools/

#上传zip

mv acme.sh-master.zip acme.sh.zip

unzip acme.sh.zip

mv acme.sh-master acme.sh

cd acme.sh

./acme.sh --install

#并创建 一个 bash 的 alias

alias acme.sh=~/.acme.sh/acme.sh

三、生成证书

#dns 方式

acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成,更详细的api 用法: https://github.com/Neilpang/acme.sh/wiki/dnsapi

#我这里用的是dnspod解释的,所以用它生成token

#登陆dnspod-->用户中心-->安全设置-->旁边的“API Token”,生成一个token

#在ssh上执行

cd /root/.acme.sh/

export DP_Id="dnspod ID值"

export DP_Key="dnspod Token值"

#为了方便生成一个通知证书

acme.sh --issue --dns dns_dp -d hualinux.com -d *.hualinux.com

#建立nginx证书

mkdir /etc/nginx/ssl

#copy/安装 证书,我这里的域名是hualinux

acme.sh  --installcert  -d  hualinux.com  \

        --key-file  /etc/nginx/ssl/allhualinux.key \

        --fullchain-file /etc/nginx/ssl/fullchain.cer \

        --reloadcmd  "service nginx force-reload"

四、nginx配置ssl

server {

    listen      80;

    listen      443 ssl;

    #ssl on;

    server_name  t1.hualinux.com;

    #by hua

    ssl_certificate  /etc/nginx/ssl/fullchain.cer;

    ssl_certificate_key /etc/nginx/ssl/allhualinux.key;

    ...

    index index.php

    ...

}


五、更新 acme.sh

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

默认已经加入定时任务中

8 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

升级 acme.sh 到最新版 :

acme.sh --upgrade

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

acme.sh  --upgrade  --auto-upgrade

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

你可能感兴趣的:(0基础自学linux运维-2.15-使用acme.sh安装免费ssl证书并自动更新)