我是靠谱客的博主 勤恳黑猫,最近开发中收集的这篇文章主要介绍Let‘s Encrypt 证书申请及配置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介

Let's Encrypt —— 是一个由非营利性组织 互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA),简单的说,就是为网站提供免费的 SSL/TLS 证书。

 

签发工具

Let's Encrypt 生成证书的工具很多,certbot 是官方推荐的签发工具,也可以通过在线服务申请。

在线一站式服务管理方便,但可能需要绑定业务,个人用户还是推荐通过工具生成证书。
这里推荐 acme.sh,它不仅有详细的中文文档,操作更为方便,还支持 Docker。

安装

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

这个操作会做3三件事:

1. 生成一个acme.sh的拷贝在home路径下 ~/.acme.sh/,所有的证书信息也都在这里了

2. 生成一个alias别名 acme.sh=~/.acme.sh/acme.sh.

3. 生成一个每日作务去检查并更新证书(证收的有效期是60天),这一步在新的版本里可以跳过,应该是帮你做好了(可以通过'crontab -l'命令查看)

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

CentOS7 实测alias不生效,要执行一下source ~/.bashrc

测试安装成功可以用这个命令

acme.sh --list

申请证书

acme.sh --issue -d example.com -d www.example.com -w /home/wwwroot/example.com

简单说一下,acme.sh 有很多种申请证书的方式,上面写得如果你已经有一个在运行的server,-w 后跟的就是这个

server的根目录,前面-d 后面跟的是要申请证书的域名,可以是多个,第一个是主域名。

还有很多方式,可以在github上看到,地址在这里

https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

我用的是standalone方式,这个方式要求服务器的80端口可用,也可以指定别的端口,命令在上面的地址里都有。

acme.sh  --issue  -d example.com  -d www.example.com --standalone --httpport 88

安装证书

acme.sh --install-cert -d example.com 
--key-file       /path/to/keyfile/in/nginx/mydomain.key  
--fullchain-file /path/to/fullchain/in/nginx/fullchain.cer

我用的nginx,要安装两个证书,nginx路在docker容器里,可以直接安装到你mount的文件夹里,之后在nginx的配置文件里指定一下证书的位置就可以了。

nginx配置

server {
    listen 80;
    server_name example.com;
    # 重定向到 https
    rewrite ^(.*)$  https://$server_name$1 permanent;
}

server {
    listen 443;
    server_name example.com www.example.com;
    root   /yout/server/root/;
    index  index.html index.htm;

    access_log /dev/null;
    error_log  /websvr/log/nginx/mydomain.com.error.log warn;

    # SSL 配置
    ssl on;
    ssl_certificate /websvr/ssl/fullchain.cer; # 证书文件
    ssl_certificate_key /websvr/ssl/mydomain.key; # 私钥文件
    ssl_session_timeout 5m; # 会话缓存过期时间
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 开启 SSL 支持
    ssl_prefer_server_ciphers on; # 设置协商加密算法时,优先使用服务端的加密套件
}

之后重启nginx的docker容器证书才被加载,'service nginx reload'不好使

 

最后

以上就是勤恳黑猫为你收集整理的Let‘s Encrypt 证书申请及配置的全部内容,希望文章能够帮你解决Let‘s Encrypt 证书申请及配置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部