letsEncrypt证书生成的4个文件都是什么用途?

Let’s Encrypt
Let's Encrypt是由EFF、Mozilla、Cisco、Akamai、IdenTrust与密西根大学研究人员共同创立的免费的凭证中心,目的在于推动全球所有的网站都使用HTTPS加密传输,创建一个更安全、更具隐私性的Web。目前Let’s Encrypt由非营利的网际网路安全研究组织(ISRG)负责营运。

letsEncrypt证书生成的4个文件都是什么用途?_第1张图片

                                                          Let’s Encrypt

  • 生成证书
    我们先在github克隆letsencrypt项目,然后生成证书。
git clone https://github.com/letsencrypt/letsencrypt
cd ./letsencrypt

# 生成证书
./letsencrypt-auto certonly -d domain.com -d www.domain.com

注意:请将domain换成对应要生成证书的域名!!!

执行脚本之后有三种生成证书的方式可选,一般选择standalone即可。

1: Apache Web Server plugin - Beta (apache)
2: Place files in webroot directory (webroot)
3: Spin up a temporary webserver (standalone)

成功的话将会返回如下的信息:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/samego.com/fullchain.pem. Your cert will
   expire on 2017-07-13. To obtain a new or tweaked version of this
   certificate in the future, simply run letsencrypt-auto again. To
   non-interactively renew *all* of your certificates, run
   "letsencrypt-auto renew"

并且我们可以从返回的信息知道生成证书的储存目录位于/etc/letsencrypt/live/domain.com/,一共生成四个证书文件,一般情况下 fullchain.pem 和 privkey.pem 就够用了。

这几个证书都是什么作用呢?

  • cert.pem contains the certificate - public key and metatdata (issuer, serialnumber, subject, SAN, attributes and extensions).
  • privkey.pem contains the private key of your certificate.
  • chain.pem contains your certificate and its issuer - there could be more instances in the chain like Root CA -> Sub CA -> your cert.
  • fullchain.pem ontains your certificate and all cas up to the root ca.

翻译成中文就是: 

| 文件名          | 文件作用   |
| ----            | ----      | 
|cert.pem         | 服务端证书 |
|chain.pem        | 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书|
|fullchain.pem    | 包括了cert.pem和chain.pem的内容 |
|privkey.pem      | 证书的私钥 |

  • 配置nginx
    要修改的nginx的配置文件位于/etc/nginx/sites-enabled/default

server {
    listen 443;
    #domain修改成你的域名即可
    server_name domain.com www.domain.com; 

    ssl on;
    #fullchain证书路径
    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
    #privkey证书路径
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;

    # 下面是我个人反代理的,不用管!!!
        location / {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://alicance.github.io;
    }
}

有些时候没有fullchain.pem,可能是不行的。



 

 参考:

https://stackoverflow.com/questions/59509730/different-between-ca-and-cert

你的网站HTTPS了吗 | Let’s Encrypt - 简书

你可能感兴趣的:(linux,letsencrypt,fullchain.pem,private.key,证书)