今天服务器let'encript证书过期了,年纪大了老忘,不得不把别人的博客看一遍,就是因为我不想定时任务执行acme_tiny.py,还是写个文档记下,很久不写对外博客了,冒个泡。

1、创建普通域名私钥

openssl genrsa 4096 > domain.key

2、单个域名('xxx.xxx.com')

openssl req -new -sha256 -key domain.key -subj "/CN=域名" > domain.csr

3、域名验证

搭建一个web服务,以nginx为例,配置nginx.conf文件,并保证处于启动状态,并且外网80能访问

server {

listen 80;

server_name 域名;

location ^~ /.well-known/acme-challenge/ {

alias /tmp/ssl/;  //随便设置一个服务器上已经存在的目录

try_files $uri =404;

}

}

4、在目录/path/to获取网站证书

下载证书生成工具acme_tiny

wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py

openssl创建一个私钥account.key用于acme_tiny.py 账户account-key

openssl genrsa 4096 > account.key

指定账户私钥、CSR 、验证目录

python acme_tiny.py --account-key ./account.key --csr ./domain.csr --acme-dir /tmp/ssl/> ./signed.crt

创建中间证书并和网站证书融合

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

cat signed.crt intermediate.pem > chained.pem

注意中间证书跟网站证书版本一定要保证一致,不然即使,网站访问的时候虽然没有问题,但是一些严格必须遵循ssl第三方服务平台会认证不通过,比如:微信小程序

给nginx 443端口配置上我们生成的证书

server {

listen 443;

server_name 域名;

ssl on;

ssl_certificate /path/to/chained.pem;

ssl_certificate_key /path/to/domain.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;

ssl_session_cache shared:SSL:50m;

ssl_prefer_server_ciphers on;

}

另外该证书有效期只有90天,可以把上面的命令行写成一个.sh命令用crontab跑起来

#!/usr/bin/sh
python /path/to/acme_tiny.py --account-key /path/to/account.key --csr /path/to/domain.csr --acme-dir /tmp/ssl/ > /tmp/signed.crt || exit
wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem
cat /tmp/signed.crt intermediate.pem > /path/to/chained.pem
service nginx reload

let'encript 解决证书问题的更多相关文章

  1. Fillder安装,如何解决证书无法导出

    Q: 安装配置完Fidder之后,点击导出证书,提示Creation of the root ceritificate  was not successful A :需执行dos命名. -cy aut ...

  2. Fiddler抓取https请求,解决“证书错误”警告

    要抓取走HTTPS内容,Fiddler必须解密HTTPS流量. 但是,浏览器将会检查数字证书,并发现会话遭到窃听.为了骗过浏览 器,Fiddler通过使用另一个数字证书重新加密HTTPS流量. Fid ...

  3. java的https请求解决证书问题

    package sqr.srchSpider.utils; import java.security.SecureRandom; import java.security.cert.Certifica ...

  4. 使用非Web方式从CA申请证书

    背景介绍:关于从CA申请证书这点事,网上的那些教程基本都是让我们通过访问https://server/certsrv这样的网页来操作的,我一直希望不依赖IIS就把这事干了,于是就有了下面的文章. 1. ...

  5. mac 下终端 操作svn命令 以及出现证书错误的处理方法

    首先,转载地址:http://hi.baidu.com/zhu410289616/item/eaaf160f60eb0dc62f4c6b0e 还有一个地址:http://www.cnblogs.com ...

  6. 通配符证书导致 Outlook Anywhere 的客户端连接问题

    通配符证书导致 Outlook Anywhere 的客户端连接问题 本主题介绍当您使用 Outlook Anywhere 连接到 Microsoft Exchange 及在组织中跨 Exchange ...

  7. 删除CNNIC根证书

    操作方法: 1.点击IE工具菜单-->选项-->内容-->证书,在受信任的根证书颁发机构中找到CNNIC Root,将证书导出到桌面备用. 双击CNNIC ROOT查看这个证书的属性 ...

  8. 打开所有https网页都提示证书错误

    最近安装了网上下载的ghost系统,可是不管是win7还是xp,打开所有的https网站都提示证书错误.想想现在打击盗版系统的力度不断增加,以前做的比较好的盗版系统网站都已经不再做系统了,现在下载的g ...

  9. 关于k8s集群证书1年过期后,使用kubadm重新生成证书及kubeconfig配置文件的变化

    这个证书很重要,不用说. 但手工生成证书,确实工作量大且容易出错. 推荐的方式,是保留/etc/kubernetes/pki目录下的ca.crt,ca.key,sa.crt,sa.key. 这四个文件 ...

随机推荐

  1. Sprinig泛型依赖注入

    在父类中建立关系 (spring4.x以上版本) package com.spring.annotation.generic; import org.springframework.beans.fac ...

  2. 公司内部Samba 服务器架设

    1.需求 在公司内部打造一个文件管理系统,其作用域仅仅在公司内部,支持在线对文件的修改和保存操作等,同时也要注意权限问题. 2.策划 目前设立四个群组:运维.开发 .测试和普通,当然所对应的对文件的访 ...

  3. 1.7.6方法stop()与java.lang.threadDeath异常

    调用stop方法时会抛出java.lang.ThreadDeath异常,但一般情况下这个异常不需要显示的捕捉 package com.cky.thread; /** * Created by edis ...

  4. Java类、超类、包

    定义和实例化与C#相同   特殊变量     super当前对象的父类,用于调用父类的变量和方法     this当前类对象                存取限制有3个     没有C#的inter ...

  5. (转)PHP5使用cookie时报错 cannot modify header information - headers already sent by (......)

    转自:http://blog.csdn.net/buyingfei8888/article/details/8899797 运行有警告Warning: Cannot modify header inf ...

  6. #define 和typedef

    #define PI 3.1415926 #define是将数值进行定义(语法上也可以定义类型但不建议这么做,具体下面问题说) typedef int Data; rypedef是对类型进行定义 注意 ...

  7. android Activity中设置setResult 没有触发onActivityResult

    昨天修改<manifest 文件中activity 的 模式为单例模式:android:launchMode="singleTask" ,发现我的onActivityResu ...

  8. SRM475

    250pt: 题意:有最长N=17的一条格子,每个格子是W.B和R三种颜色之一,当某个格子上有兔子时,下一个回合该兔子按照以下的规则移动: 如果兔子在第一个格子,则向右移动一格: 否则如果兔子在倒数两 ...

  9. IT项目管理流程以及每个步骤用到的文档

    IT项目管理从大的方面可分为:1)项目启动阶段:2)项目计划阶段:3)项目的实施阶段:4)项目的结项阶段 1)项目启动阶段: 1.项目启动流程规范: 1.1项目启动的简介.目的和范围 1.2目的可行性 ...

  10. [php-error-report]PHP Strict Standards: Only variables should be passed by reference

    // 报错代码:PHP Strict Standards: Only variables should be passed by reference $arr_userInfo['im_nation_ ...