Let’s Encrypt https证书安装


如今已经有不少的免费ssl证书提供商,国内的也有,nginx

不过国内政策要求还要把key给他们,git

咱们仍是用Let’s Encrypt吧。github

这里有官方中文文档 ->biubiubiuweb


官方推荐的是使用Certbot ACME 客户端shell

可是这里用的是acme.shapache

acme.sh是个开源的shell脚本,要更为轻量,对于个人破烂vps仍是选择轻量点的吧。dom

Acme.sh也有中文的简单教程,很详细:-(´▽`)-
curl

关于acme.sh

Acme.sh会在天天 0:00 点自动检测全部的证书,须要更新时会自动更新post

acme全部东西都在~/.acme.sh/下面,不会对外形成影响优化


安装acme.sh

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

能够设置别名,否则命令太长了alias acme.sh=~/.acme.sh/acme.sh


生成证书

能够本身设置

acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot /home/wwwroot/mydomain.com/

nginx/apache能够自动获取域名

acme.sh --issue  -d mydomain.com   --apache
acme.sh --issue  -d mydomain.com   --nginx

使用nginx模式在安装过程当中遇到错误

[Mon Mar  2 15:42:33 UTC 2020] Can not find conf file for domain seyana.life
[Mon Mar  2 15:42:33 UTC 2020] Please add '--debug' or '--log' to check more details.

这是由于在nginx中,我配置server_name 为localhost

server_name localhost

acme.h是根据这个获取域名的,因此会出错,须要为绑定的域名

设置好后从新运行就成功了。


安装证书

用提供的命令能够一次把证书和key复制到指定目录

acme.sh --installcert -d www.xxxxx.come \
--key-file       /root/ssl/key/key.pem  \
--fullchain-file /root/ssl/cert/cert.pem \
--reloadcmd     "service nginx force-reload"

不建议把证书留在~/.acme.sh/中,

关于配置,不提供自动配置,须要本身配置

下面是nginx的443配置例子

server {
        listen  443 ssl;
        server_name     www.xxx.com  xxx.com;#域名
        ssl_certificate /root/ssl/cert/cert.pem;#证书路径
        ssl_certificate_key     /root/ssl/key/key.pem;#key路径
        #...
      }


以后能够用301永久重定向把http 的80端口也转发到443上

rewrite  ^/(.*)$ https://www.****.com/$1 permanent;

这样即便用http访问也会跳转到https上,固然这样的转换方式仍然存在风险,能够开启HSTS固定访问https等措施,具体仍是留到https优化里把。

小锁锁get√


其余acme.h2命令

acme.sh --upgrade   #更新
acme.sh --upgrade  --auto-upgrade     #开启自动更新
acme.sh --upgrade  --auto-upgrade  0   #关闭自动更新

更多更高级的用法在wiki上 wwwww

个人博客: https://www.seyana.life/post/15

相关文章
相关标签/搜索