zoukankan      html  css  js  c++  java
  • 使用Letsencrypt做SSL certificate

    为什么要使用Letsencrypt做SSL certificate?

    最简单直接的原因是免费。但是免费存在是否靠谱的问题,尤其是对安全要求比较高的网站,需要考虑使用letsencrypt的安全性是否符合你的标准。本文旨在介绍怎么使用letsencrypt做SSL certificate,或者说是letsencrypt学习笔记更适合,对其适用场景没有做过多研究。

    从git上下载letsencrypt到服务器上

    $ git clone https://github.com/letsencrypt/letsencrypt

    进到letsencrypt目录下,使用一下命令来创建以及安装CA

    $ ./letsencrypt-auto certonly
    $ ./letsencrypt-auto --apache -d domainName

    CA的一些文件在 /etc/letsencrypt 目录下。

    这样就可以以https方式访问你指定的域名了。

    但是,网站内可能存在一些http请求,浏览器会报错并加载不成功。这里,我的做法是将站内所有的http请求重定向到https请求。我们需要修改apache2的配置文件。

    打开000-default.conf文件,

    /etc/apache2/sites-enabled/000-default.conf

    加上

    RewriteEngine On
    RewriteRule  ^/(.*)$ https://domainname/$1 [R,L]

    修改tomcat下的server.xml文件

    <Connector URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1" 
                  connectionTimeout="20000" 
                  compression="on" 
                  compressionMinSize="256" 
                  compressableMimeType="application/json,application/javascript,application/xml,image/gif,image/png,text/css,text/html,text/javascript,text/plain,text/xml"               
                  redirectPort="8443"
                  proxyPort = "443"  scheme="https"/>

    这样网站所有的请求都指向https请求了。

    letsencrypt默认30天内有效,但有renew的命令可以在letsencrypt过期之后更新CA。自动更新CA的脚本如下

    #!/bin/sh
    if ! /path/to/letsencrypt-auto renew > /var/log/letsencrypt/renew.log 2>&1 ; then
        echo Automated renewal failed:
        cat /var/log/letsencrypt/renew.log
        exit 1
    fi

    需要在服务器上定期执行这个脚本,可以使用crontab。

  • 相关阅读:
    拾遗:systemctl --user
    拾遗:~/.zshrc 配置
    拾遗:YouCompleteMe 前传——编译安装 llvm + clang
    洛谷P1546 最短网络 Agri-Net(最小生成树,Kruskal)
    洛谷P1462 通往奥格瑞玛的道路(二分+spfa,二分+Dijkstra)
    HDU6669 Game(思维,贪心)
    HDU6672 Seq(找规律)
    HDU6668 Polynomial(模拟)
    洛谷P1378 油滴扩展(搜索)
    机器学习数学基础(四)
  • 原文地址:https://www.cnblogs.com/holiday2000/p/5276368.html
Copyright © 2011-2022 走看看