首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在nginx中使用动态SSL证书编写模块?

如何在nginx中使用动态SSL证书编写模块?
EN

Stack Overflow用户
提问于 2019-08-15 11:02:04
回答 1查看 587关注 0票数 0

我使用的是nginx1.16.0,现在有一个场景,其中服务器名的一部分需要加载不同的SSL证书。由于某些原因,我不能使用OpenResty,所以我需要编写模块来实现这个函数。

现在我想到了两种选择。

  1. 为ssl_certificate和其他相关指令设置自定义变量,编写模块可以判断服务器名称并动态地修改变量,从而实现动态证书set $certificate_var ''; #Create custom variables set $certificate_key_var ''; GetCertificateWithUpdateVariable 'certificate_var' 'certificate_key_var';#Modify the values of custom variables according to business logic within the custom module ssl_certificate $certificate_var; ssl_certificate_key $certificate_key_var;的效果。
  2. 修改有关ssl的nginx源代码,将判断条件直接添加到源代码中,并在此基础上重新编译。

我开始实施这两个方案,但我遇到了问题。

第一种解决方案: ssl_certificate不支持用户定义的变量,nginx在1.15.9版本之后开始支持一些内置变量,这些变量可以添加到ssl_certificate指令中,但是这有点固定,我不能用判断来做一些事情,所以这个想法不能满足我的需要。需求。

ssl_certificate /root/ssl/$ssl_server_name/fullchain.cer; ssl_certificate_key /root/ssl/$ssl_server_name/nginx.kooboo.cn.key;

那么,其他想法能否绕过这一限制呢?

  1. 而不是修改自定义变量,ssl_certificate指令本身直接在模块中获得并修改。这可行吗?该怎么做呢?
  2. 修改模块中的$ssl_server_name值可行吗?该怎么做呢?

第二个解决方案是修改有关ssl的nginx源代码。nginx的源代码非常庞大。我找不到ssl的核心部分。从逻辑上讲,它应该是在判断服务器名称之后传入并加载相应证书的HTTP请求。这个链接应该是一个键值对搜索过程,我现在想改变这个块的进程,我想自己管理这个键值对,以便控制他的搜索。这部分容易实现吗?我应该修改代码的哪一部分?

我期待着你的reply.thanks

EN

回答 1

Stack Overflow用户

发布于 2020-02-23 11:39:21

我已经有一段时间没有登录了,但是我已经实现了这个函数。下面是一条记录:您只需要更改在SSL_CTX_set_cert_cb中注册的ngx_http_ssl_module.c函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57508690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档