zoukankan      html  css  js  c++  java
  • 使用Let's Encrypt手动创建https证书

    Let’s Encrypt是一个开源免费的SSL证书项目,是由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织发起的,现由Linux基金会托管。

    这篇博文分享的是使用letsencrypt成功在Linux Ubuntu上生成ssl证书的操作步骤。

    1、安装letsencrypt

    git clone https://github.com/letsencrypt/letsencrypt
    cd letsencrypt
    ./letsencrypt-auto --help
    

    2、生成私钥

    openssl genrsa 4096 > x.cnblogs.com.key
    

    3、生成CSR(Certificate Signing Reqeust)

    openssl req -new -sha256 
        -key x.cnblogs.com.key 
        -subj "/C=CN/ST=省份/L=城市/O=部门/OU=公司/CN=x.cnblogs.com" 
        -reqexts SAN 
        -outform der 
        -config <(cat /etc/ssl/openssl.cnf 
            <(printf "[SAN]
    subjectAltName=DNS:x.cnblogs.com")) 
        -out x.cnblogs.com.csr
    

    4、向letsencrypt服务器发起获取证书的请求

    ./letsencrypt-auto certonly 
        --authenticator manual 
        --server https://acme-v01.api.letsencrypt.org/directory --text 
        --email x@cnblogs.com 
        --csr x.cnblogs.com.csr
    

    在出现”Press ENTER to continue“时,不要动,进行下一步操作。

    5、验证证书对应域名的所有权
    如果对应的站点已经在运行,可以创建这样的URL:/.well-known/acme-challenge/xxx,以便letsencrypt服务器可以访问这个URL进行验证。
    如果没有对应的站点,可以用python临时运行Web站点进行验证,参考下面的提示:

    Make sure your web server displays the following content at
    http://x.cnblogs.com/.well-known/acme-challenge/xxx before continuing:
    
    xxxxxx...
    
    If you don't have HTTP server configured, you can run the following
    command on the target server (as root):
    
    mkdir -p /tmp/letsencrypt/public_html/.well-known/acme-challenge
    cd /tmp/letsencrypt/public_html
    printf "%s" xxxxxx... > .well-known/acme-challenge/xxx
    # run only once per server:
    $(command -v python2 || command -v python2.7 || command -v python2.6) -c 
    "import BaseHTTPServer, SimpleHTTPServer; 
    s = BaseHTTPServer.HTTPServer(('', 80), SimpleHTTPServer.SimpleHTTPRequestHandler); 
    s.serve_forever()" 
    

    6、回到第4步的操作窗口按回车键,如果证书成功创建,会出现下面的提示:

     - Congratulations! Your certificate and chain have been saved at ...
    

    然后在当前文件夹中就会看到扩展名为.pem的证书文件。

    0000_cert.pem
    
    参考资料
  • 相关阅读:
    数据库三大范式讲解
    transition、-moz-transition、-webkit-transition、-o-transition是什么意思?怎样用?
    js常用函数
    margin()与offset()的区别
    小总结 小理解 (不咋全面...)
    栈的C++实现(指针)——创建-push-pop-top-清空栈-处理栈
    链表的C++实现——创建-插入-删除-输出-清空
    运行时间中的对数
    最大子序列和
    mapminmax的用法详解 _MATLAB
  • 原文地址:https://www.cnblogs.com/dudu/p/letsencrypt-manual-https-cert.html
Copyright © 2011-2022 走看看