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。

  • 相关阅读:
    设计模式--单例模式(Singleton)
    C# 和.Net 特性
    Fiddler 教程
    史铁生遗作:昼信基督夜信佛
    如何实现早日退休理想
    Linux 常用
    Golang 读书
    Python 读书
    RbMQ 简介
    UML 简介
  • 原文地址:https://www.cnblogs.com/holiday2000/p/5276368.html
Copyright © 2011-2022 走看看