使用ssl_certificate_by_lua指令动态加载证书

这篇具有很好参考价值的文章主要介绍了使用ssl_certificate_by_lua指令动态加载证书。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、下载 OpenResty - 下载

根据自己系统选择下载,我的是64位

使用ssl_certificate_by_lua指令动态加载证书,nginx,ssl,网络协议,网络

2、解压到目录

使用ssl_certificate_by_lua指令动态加载证书,nginx,ssl,网络协议,网络

3、启动openresty 

进入解压后的目录,执行nginx.exe 

使用ssl_certificate_by_lua指令动态加载证书,nginx,ssl,网络协议,网络

浏览器输入 http://localhost 查看是否正常。显示以下画面就表示没有问题。

接下来可以开始准备动态安装证书

使用ssl_certificate_by_lua指令动态加载证书,nginx,ssl,网络协议,网络

4、使用openssl-win64生成测试证书(待补充)

openssl 下载地址 。 也可以使用csdn下载​​​​​​​

5、进入conf目录,编辑nginx.conf

#增加ssl server配置
	server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      cert/server.crt;
        ssl_certificate_key  cert/server.key;
		ssl_certificate_by_lua_file conf\cert\ssl.lua;


        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {

			root   html;
            index  index.html index.htm;
        }
    }

6、编写ssl.lua , 放到conf/cert下文章来源地址https://www.toymoban.com/news/detail-742381.html

local ssl = require "ngx.ssl"
 
-- 清除之前设置的证书和私钥
local ok, err = ssl.clear_certs()
if not ok then
    ngx.log(ngx.ERR, "failed to clear existing (fallback) certificates")
    return ngx.exit(ngx.ERROR)
end
 
-- 获取证书内容,比如 io.open("my.crt"):read("*a")
local cert_data, err
cert_data = io.open("conf\\cert\\localhost.crt"):read("*a")
if not cert_data then
    ngx.log(ngx.ERR, "failed to get PEM cert: ", err)
    return
end
 
-- 解析出 cdata 类型的证书值,你可以用 lua-resty-lrucache 缓存解析结果
local cert, err = ssl.parse_pem_cert(cert_data)
if not cert then
    ngx.log(ngx.ERR, "failed to parse PEM cert: ", err)
    return
end
 
local ok, err = ssl.set_cert(cert)
if not ok then
    ngx.log(ngx.ERR, "failed to set cert: ", err)
    return
end
 
local pkey_data, err
pkey_data = io.open("conf\\cert\\localhost.key"):read("*a")
if not pkey_data then
    ngx.log(ngx.ERR, "failed to get DER private key: ", err)
    return
end
 
local pkey, err = ssl.parse_pem_priv_key(pkey_data)
if not pkey then
    ngx.log(ngx.ERR, "failed to parse pem key: ", err)
    return
end
 
local ok, err = ssl.set_priv_key(pkey)
if not ok then
    ngx.log(ngx.ERR, "failed to set private key: ", err)
    return
end

到了这里,关于使用ssl_certificate_by_lua指令动态加载证书的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux 使用steam++,steam社区页面报错:Invalid SSL Certificate The SSL certificate for https://steamcommunity.c

    解决方法: 在Chrome浏览器中导入证书: chrome搜索栏输入 chrome://settings/certificates ,选择导入证书 格式需要勾选所有文件,路径在 /home/user/.local/share/Steam++/ 三个全部勾选,点击确定后重新启动steam++和steam即可

    2024年02月12日
    浏览(73)
  • 【漏洞复现】CVE-2004-2761:使用弱哈希算法签名的 SSL 证书(SSL Certificate Signed Using Weak Hashing Algorithm)

    概要:本次复现是针对编号为CVE-2004-2761的漏洞,由于条件有限,本次复现通过创建自签名证书进行操作。 问题描述:证书链中的 SSL 证书使用弱哈希算法进行签名。 本次复现环境在Linux平台下使用Nginx进行环境的搭建,通过 Openssl 组件生成自签名证书,并在 Nginx 配置文件中进

    2024年02月10日
    浏览(43)
  • 使用postman时,报错SSL Error: Unable to verify the first certificate

    开发中使用postman调用接口,出现以下问题,在确认路径、参数、请求方式均为正确的情况下 解决方法 File - Settings - SSL certification verification 关闭 找到图中配置,这里默认是打开状态,把它关闭即可:ON - OFF 再次请求接口 原因:使用 Postman 发起 HTTPS 请求时,它会验证服务器的

    2024年02月04日
    浏览(46)
  • 解决ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

    原代码: 执行代码时,发现会报错:ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997) 需要在调用函数websockets.connect()时,传递一个参数ssl=ssl_context即可,代码如下: 参考文档:https://www.cnpython.com/qa/260804

    2024年02月16日
    浏览(61)
  • requests出现ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月11日
    浏览(47)
  • git -- SSL certificate problem

    新建一个仓库,在向里面上传文件时,出现SSL证书问题 这个问题是由于没有配置信任的服务器HTTPS验证。默认,cURL被设为不信任任何CAs,就是说,它不信任任何服务器验证。 只需配置下面命令即可解决:

    2024年02月16日
    浏览(40)
  • CURL error 60: SSL certificate problem: certificate has expired

    项目使用guzzleHttp做的一个接口,报错:certificate has expired 因为在linux centos环境与window环境有所不同,在此记录一下解决过程。   目录 报错提示 原因 解决方式 1.去掉guzzlehttp的验证 2.更新CA证书 总结 cURL error 60: SSL certificate problem: certificate has expired (see https://curl.haxx.se/libcurl/

    2024年02月02日
    浏览(46)
  • curl: (60) SSL certificate problem: self-signed certificate in certificate chain解决

    从本地电脑上使用curl请求后端服务器api的时候报下面错误: 导致错误的原因: 默认情况下,curl 会尝试根据系统上安装的默认CA验证 SSL 证书, 但是我们的server上的证书是在内网的CA申请的,本地电脑上没有相应根证书,所以验证失败。 解决方案: 使用 curl -k , 跳过证书验证,

    2024年02月03日
    浏览(71)
  • SSL certificate problem: self signed certificate in certificate chain错误的全网详细解决方法

    今天使用 git clone xxx.git 项目时,却报出如下的错误信息: 即 SSL certificate problem: self signed certificate in certificate chain 错误。 正赶上最近 ChatGPT 比较火,可以借助它来分析错误,如下图所示: This problem occurs when the SSL certificate presented by the server is not signed by a trusted certificate aut

    2024年02月07日
    浏览(48)
  • (Git)git clone报错——SSL certificate problem: self signed certificate

    克隆代码时报错 问题分析 提示信息为SSL认证失败,可以关闭SSL的认证。 公司bitbucket只支持https地址,需要client配置忽略https证书检验。 解决方法 在克隆前输入下边命令: 解决参考:https://blog.csdn.net/anniewhite/article/details/113790557

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包