推荐使用这个脚本,具体说明里面都有

https://github.com/xdtianyu/scripts/tree/master/le-dns

它是通过调用dns服务商的api更新txt记录实现,无需指定网站目录及dns解析,支持dnspod和cloudxns两大服务商
弄完之后看这篇文章配apache
 
============ 我是分割线 =============
  1. 先弄个文件夹放东西
    mkdir /usr/local/openssl
  2. 生成账户和网站的key
    openssl genrsa 4096 > account.key
    openssl genrsa 4096 > zhiyi.key
  3. 生成证书
    openssl req -new -sha256 -key zhiyi.key -subj "/" -reqexts SAN -config <(cat /etc/pki/tls/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:snsproject.com,DNS:www.snsproject.com")) > zhiyi.csr
    如果说找不到openssl.cnf,先全局搜下这个文件在哪里,如果搜不到就装一个openssl
  4. 下载一个python的小工具
    wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py
  5. 运行之,生成验证的签名crt文件
    python ./acme_tiny.py --account-key ./account.key --csr ./zhiyi.csr --acme-dir ./www/acme-challenge/  > ./signed.crt
    注意,它会生成一个文件,然后通过http://yoursite.com/.well-known/acme-challenge/+文件名获取这个文件进行验证,所以一定要确保这个文件通过刚才的url能访问到

6.  得到签名后,生成网站证书

wget -O - https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem > intermediate.pem

cat signed.crt intermediate.pem > chained.pem

7.  部署篇请见之前写的

8.  由于证书90天有效,需要自动刷新证书脚本

vi autorefresh.sh

#!/bin/bash

cd /usr/local/openssl/
python ./acme_tiny.py --account-key ./account.key --csr ./zhiyi.csr --acme-dir ./www/acme-challenge/ > ./signed.crt
wget -O - https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem > intermediate.pem
cat signed.crt intermediate.pem > chained.pem
service httpd restart

vi /etc/crontab

在最后加上一行

0 0 4 * * root /usr/local/openssl/autorefresh.sh >/dev/null 2>&1

9. 设置重定向https

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{REQUEST_URI} !^/.well-known

RewriteRule (.*) https://%{SERVER_NAME}/$1 [L,R]

Let'sencrypt认证的网站Https配置的更多相关文章

  1. nginx配置ssl加密(单双向认证、部分https)

    nginx配置ssl加密(单双向认证.部分https) nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始 ...

  2. [转帖]nginx配置ssl加密(单/双向认证、部分https)

    nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627   nginx下配置ssl本来是很简单的,无论是去认证 ...

  3. 微信小程序https配置

    先简单说下什么是https,https与http区别 ,以及https的原理 什么是https 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输 ...

  4. 五分钟搞定 HTTPS 配置,二哥手把手教

    01.关于 FreeSSL.cn FreeSSL.cn 是一个免费提供 HTTPS 证书申请.HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推进 HTTPS 证书的普及与应用,简化证 ...

  5. Nginx负载均衡和HTTPS配置及集群搭建

    Nginx的高可用(HA)配置 1.高可用配置结构(画图说明) 2.KeepAlived的安装和配置 1.安装 yum install keepalived 2.keepalived.conf配置文件 ...

  6. Nginx跨域及Https配置

    一.跨域 1. 什么是跨域? 跨域:指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制(指一个域下的文档或脚本试图去请求另一个域下的资源,这 ...

  7. 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语

    目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...

  8. 创建免费的证书,实现网站HTTPS

    使用Certbot来实现HTTPS,这边也就考虑采用Cerbot来实现下 配置Certbot 证书 Certbot 的官方网站是 https://certbot.eff.org/ ,打开官网选择的 w ...

  9. 网站https证书SSL证书相关

    网站https证书SSL证书相关 二级域名可以申请证书来使用,主域名申请的单域名证书,二级域名不在https加密保护内,通配符证书可以保护主域名下所有的二级子域名,二级域名等于和主域名使用的同一张证书 ...

随机推荐

  1. Link方式导入java项目

    一.环境说明 我用的是eclipse3.3.2,并安装了myeclipse的插件. 二.工程文件说明 一共三个文件夹: javacode:存放Java源文件,包含多个子文件夹,每个子文件夹表示一个单独 ...

  2. WebService第一天

    WebService第一天 [课程安排]: 整体安排:2天: 第一天:webservice入门,JDK规范和实现:jax-ws,相关概念 第二天:CXF框架,和spring的集成开发.Hessian的 ...

  3. line-height:2、line-height:2em、line-height:200%的区别

    文章来源: http://www.zhihu.com/question/20394889 总结: 1.line-height:2em.line-height:200%  根据父元素的字体大小计算行高 ...

  4. 【Python】生成器和递归

    l=[1, 2, 3, 4, 5, 6] 如果l求和,毫无疑问可以使用递归,比如可以这样: def sum(l): res = 0 for i in l: if not isinstance(i, l ...

  5. HDU 1054 Strategic Game(无向二分图的最大匹配)

    ( ̄▽ ̄)" //凡无向图,求匹配时都要除以2 #include<iostream> #include<cstdio> #include<algorithm&g ...

  6. Kettle启动及简单操作(1)

    官方Hadoop配置 http://wiki.pentaho.com/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Versio ...

  7. hdu 1028 Ignatius and the Princess III(母函数入门+模板)

    Description "Well, it seems the first problem is too easy. I will let you know how foolish you ...

  8. python 列表、字典的方法

    # 列表最后新增元素 li = [11, 22, 33] print(li) li.append(44) # 对原列表最后增加一个元素 print(li) 执行如下: [11, 22, 33][11, ...

  9. protected-broadcast的作用

    protected-broadcast(暂时从网上搜到这么多,也不知对错,先留着) “保护性广播”,在一些AndroidManifest.xml中的一级标记<protected-broadcas ...

  10. shell脚本调试方法

    我们开启了 Shell 脚本调试系列文章,先是解释了不同的调试选项,下面介绍如何启用 Shell 调试模式. 写完脚本后,建议在运行脚本之前先检查脚本中的语法,而不是查看它们的输出以确认它们是否正常工 ...