EMQXMQTT服务器启用SSL/TLS安全连接EMQ

TLS/SSL协议下的通讯过程分为两部分,第一部分是握手协议。握手协议的目的是鉴别对方身份并建立一个安全的通讯通道。握手完成之后双方会协商出接下来使用的密码套件和会话密钥;第二部分是record协议,record和其他数据传输协议非常类似,会携带内容类型,版本,长度和荷载等信息,不同的是它所携带的信息是加密了的。

通常来说,我们会需要数字证书来保证TLS通讯的强认证。数字证书的使用本身是一个三方协议,除了通讯双方,还有一个颁发证书的受信第三方,有时候这个受信第三方就是一个CA。和CA的通讯,一般是以预先发行证书的方式进行的。也就是在开始TLS通讯的时候,我们需要至少有2个证书,一个CA的,一个EMQX的,EMQX的证书由CA颁发,并用CA的证书验证。

获得一个真正受外界信任的证书需要到证书服务提供商进行购买。在实验室环境,我们也可以用自己生成的证书来模拟这个过程。下面我们分别以这两种方式来说明EMQX服务器的SSL/TLS启用过程。

注意:购买证书与自签名证书的配置,读者根据自身情况只需选择其中一种进行测试。

如果有购买证书的话,就不需要自签名证书。

为方便EMQX配置,请将购买的证书文件重命名为emqx.crt,证书密钥重命名为emqx.key。

在这里,我们假设您的系统已经安装了OpenSSL。使用OpenSSL附带的工具集就可以生成我们需要的证书了。

首先,我们需要一个自签名的CA证书。生成这个证书需要有一个私钥为它签名,可以执行以下命令来生成私钥:

opensslgenrsa-outca.key2048这个命令将生成一个密钥长度为2048的密钥并保存在ca.key中。有了这个密钥,就可以用它来生成EMQX的根证书了:

opensslreq-x509-new-nodes-keyca.key-sha256-days3650-outca.pem查看CA证书信息(可选):

opensslx509-inca.pem-noout-text根证书是整个信任链的起点,如果一个证书的每一级签发者向上一直到根证书都是可信的,那个我们就可以认为这个证书也是可信的。有了这个根证书,我们就可以用它来给其他实体签发实体证书了。

实体(在这里指的是EMQX)也需要一个自己的私钥对来保证它对自己证书的控制权。生成这个密钥的过程和上面类似:

opensslgenrsa-outemqx.key2048新建openssl.cnf文件,

[req]default_bits=2048distinguished_name=req_distinguished_namereq_extensions=req_extx509_extensions=v3_reqprompt=no[req_distinguished_name]countryName=CNstateOrProvinceName=ZhejianglocalityName=HangzhouorganizationName=EMQXcommonName=Servercertificate[req_ext]subjectAltName=@alt_names[v3_req]subjectAltName=@alt_names[alt_names]IP.1=BROKER_ADDRESSDNS.1=BROKER_ADDRESS然后以这个密钥和配置签发一个证书请求:

opensslreq-new-key./emqx.key-configopenssl.cnf-outemqx.csr然后以根证书来签发EMQX的实体证书:

opensslx509-req-in./emqx.csr-CAca.pem-CAkeyca.key-CAcreateserial-outemqx.pem-days3650-sha256-extensionsv3_req-extfileopenssl.cnf查看EMQX实体证书(可选):

opensslx509-inemqx.pem-noout-text验证EMQX实体证书,确定证书是否正确:

$opensslverify-CAfileca.pememqx.pememqx.pem:OK准备好证书后,我们就可以启用EMQX的TLS/SSL功能了。

在EMQX中mqtt:ssl的默认监听端口为8883。

将前文重命名后的emqx.key文件及emqx.crt文件拷贝到EMQX的etc/certs/目录下,并参考如下配置修改emqx.conf:

MQTTX版本要求:v1.3.2及以上版本

注意:在Certificate一栏只需选择CAsignedserver即可,使用购买证书在进行单向认证连接时不需要携带任何证书文件(CA文件也不需要携带)。

将前文中通过OpenSSL工具生成的emqx.pem、emqx.key及ca.pem文件拷贝到EMQX的etc/certs/目录下,并参考如下配置修改emqx.conf:

最后,打开EMQX的Dashboard在Listeners页面可以看到在8883端口上有一个mqtt:ssl连接。

EMQX研发工程师,负责EMQX的前端开发工作,也是MQTTX的开发者和维护者。

为了更多用户能体验到MQTToverQUIC为物联网消息传输带来的提升,我们将通过本文指导您如何从零开始上手使用MQTToverQUIC。

本文主要介绍如何通过Android与MQTT进行TLS/SSL单向认证和双向认证。

本文将对EMQX5.0所采用的各类安全保障机制与功能进行详细介绍,帮助用户了解EMQX如何保障物联网安全。

THE END
1.使用IP自签名SSL证书$ openssl req-new-keyserver.key-subj"/CN=*"-outserver.csr 1 当然,也可以像前面一样来使用参数-subj "/CN=*",手动输入各信息。 五、使用CA证书生成服务器签名证书 1. 创建辅助文件 为了使用IP进行自签名,需要创建一个辅助文件: $echosubjectAltName=IP:192.168.0.8>extfile.cnf https://blog.csdn.net/witton/article/details/144428499
2.CreateServiceCredential创建服务证书name string body 是 服务证书名称。 张三的 Git 证书 password string body 是 密码。 zhangsan scope string body 否 可见范围:如 PERSON。 PERSON (私有) type string body 是 服务证书类型,默认 USERNAME_PASSWORD。 USERNAME_PASSWORD (用户密码类型) username string body 是 用户名。 zhangsan 请求示例 curlhttps://help.aliyun.com/zh/yunxiao/developer-reference/createservicecredential
3.com.azure.identity包MicrosoftLearnAzure 标识库分别通过 和ClientCertificateCredential支持客户端机密和基于客户端证书的服务主体身份验证Client此外,建议阅读AuthorizationCodeCredential有关凭据用法的详细信息。 UsernamePasswordCredential此凭据使用用户表示用于自定义浏览器视图的选项。 ChainedTokenCredential 链接令牌凭据是一种方便的凭据,允许用户将一组https://docs.microsoft.com/zh-cn/java/api/com.azure.identity
4.VisualSVNServer自签名证书当您使用HTTPS打开VisualSVN服务器URL时,如果您的VisualSVN服务器具有自签名证书,浏览器将向您发出警告。https://www.orcode.com/question/1264129_k52f10.html
5.Rancher自签名证书过期后,按照官网对应版本更新后服务启动报错自签名证书过期集群报错X509后,我集群是2.5.8的,安装官方文档: 步骤kubectl --insecure-skip-tls-verify -n kube-system delete secrets k3s-serving kubectl --insecure-skip-tls-verify delete secret serving-cert -n cattle-system rm -f /var/lib/ranch&hellihttps://forums.rancher.cn/t/rancher/1966
6.如何生成自签名双向认证证书ssl5.生成服务端私钥key server.key: openssl genrsa -out server.key 1024 6.生成服务端请求文件 server.csr openssl req -new -out server.csr -key server.key 填入证书配置信息: Country Name (2 letter code) [AU]:cn 国家名(2个字母的代号) https://www.jianshu.com/p/3790c2d29b6c
7.使用自签名HTTPS证书反代OCP站点时,无法通过OBProxy连接通过OCP 部署 OB 集群时,如果在 OCP 配置项 ocp.site.url 配置了 HTTPS 协议的内网域名,且使用的是自签名证书,那么集群就无法通过 OBProxy 访问了,大概是因为 OBProxy 无法获取到集群相关信息。 尝试添加自签名 CA 证书到系统级证书库,在 shell 中生效,在 OBProxy 中未生效。 异常现象如下: 直连OB 集群的 OBShttps://ask.oceanbase.com/t/topic/35610403
8.codeserver完整搭建指南如果你在配置文档中使用的不是8080端口,请将目标URL最后的端口由8080改成自设的端口。 填写完后点击提交。 提交完成后,我们点击“配置文件” 将13-29行内容删除 删除前 删除后 看到“文件已保存“,则表示我们的反向代理已经配置完成。 访问建立的code-server https://blog.mashiro.pro/1022.html
9.无法让java信任我的自签名证书你越来越SSLHandshakeException这显然意味着证书没有成功导入到您的cacerts文件。那么,让我们首先检查一下https://www.null123.com/question/detail-2078951.html
10.centos搭建codeserver配置HTTPS登录页自定义实现步骤其它综合在code-server配置文件文件中增加证书配置 vim /root/.config/code-server/config.yaml cert及cert-key位置根据自己证书位置进行配置 1 2 3 4 5 bind-addr: 0.0.0.0:8426 auth: password password: <你的密码> cert: /root/.local/share/code-server/cert/www.codecoord.com_public.crt cert-key: /root/https://www.jb51.net/article/283544.htm
11.如何为服务器生成一个TLS证书openssl x509 -req -days 365 -inserver.csr -signkey server.key -out server.crt ? 解释:openssl x509 -req用于生成自签名证书,-days 365指定证书的有效期为365天,-in server.csr指定使用之前生成的CSR文件,-signkey server.key使用之前生成的私钥进行签名,-out server.crt指定输出的证书文件名为server.crhttps://www.8kiz.cn/archives/22033.html
12.代码签名工具,SSL精灵,PDF签名加密工具下载全自动完成SSL证书的申请、安装、续期等操作,提供Windows Server版本和Linux版本 SSL体检 检测SSL证书的部署健康状况 CSR生成及检查 生成证书请求文件CSR及检查CSR状态 创建PFX/SPC文件 创建/分离PFX文件,创建SPC/证书链(WosignCode包含该功能) 代码签名工具 https://www.wosign.com/Support/tool.htm
13.故障排除AWSCodeBuild可能的原因:您的S3 输出存储桶( AWS CodeBuild 存储其生成输出的存储桶)位于与 CodeBuild 构建项目不同的 AWS 区域。推荐的解决方案:更新构建项目的设置,使其指向与构建项目位于同一 AWS 区域的输出存储桶。错误:“Git 克隆失败:无法访问'your-repository-URL':SSL证书问题:自签名证书”问题: 当您尝试运行构建https://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/troubleshooting.html
14.数字证书原理腾讯云开发者社区数字证书 在前面我们讲到可以通过数字签名来证明一个人或者组织拥有一个公钥对应的私钥,因此我们可以把一个公钥看作一个数字身份标识,如果一个人可以发出使用该标识(公钥)对应的私钥签名的数据,则说明该用户是该数字身份标识的拥有者。 在现实生活中也有类似的身份证明,身份证明有匿名的,也有实名的。匿名的身份证明只是https://cloud.tencent.com/developer/article/2063429
15.SmartIDE插件市场操作手册SmartIDE5:使用自签名证书进行插件市场私有化部署 1 - 配置IDE使用SmartIDE插件市场 本文档描述如何更新Visual Studio Code以及兼容IDE的配置文件连接到SmartIDE插件市场,包括:VSCode, Codium, Code Server, OpenVSCode Server和OpenSumi。 1. 原理 参考自Using-Open-VSX-in-VS-Code,通过修改IDE product.json 文件中 extensiohttps://smartide.cn/zh/docs/manual/marketplace/_print/
16.TLS证书及自签发6x'snotepadX.509证书包含三个文件:key,csr,crt。 a.key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密 b.csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名 c.crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签https://6xyun.cn/article/94
17.WEB管理平台Self-signed server & client certificate:自签名的服务器&客户端双向认证。自签名的双向认证需要填写PEM格式的自签名CA证书(CA Certificate),客户端证书(Client Certificate)和客户端密钥(Client Key)。 如果客户端密钥文件是加密的,需要填写客户端密钥密码(Client Key Passphrase) https://www.eefocus.com/article/527095.html
18.使vscode的code其中边缘证书并不能下载,而且(貌似)只对采用了代理模式的DNS解析生效,并且代理状态下code-server的延迟表现十分惊人(亲测),直接pass。 客户端证书中,官方已经写明:使用客户端证书保护和验证您的 API 和 Web 应用程序。,并不能部署到服务器上,继续pass。 https://www.feilongproject.com/2022/02/26/code-server-with-https/
19.利用openssl生成自签证书小五的个人杂货铺echo ' --ssl-domain: 生成ssl证书需要的主域名,如不指定则默认为www.rancher.local,如果是ip访问服务,则可忽略;' echo ' --ssl-trusted-ip: 一般ssl证书只信任域名的访问请求,有时候需要使用ip去访问server,那么需要给ssl证书添加扩展IP,多个IP用逗号隔开;' echo ' --ssl-trusted-domain: 如果想多个域名访http://wang-xiaowu.github.io/posts/7a0c6fa6/
20.SunJavaSystemPortalServerSecureRemoteAccess7.2管理指南以管理员身份登录到 Portal Server 管理控制台。 选择“Secure Remote Access”选项卡,然后单击配置文件名称以修改其属性。 选择“重写器”选项卡。 修改以下属性: 配置个人数字证书验证 PDC 由“认证机构”(CA) 发放,并使用该认证机构的私有密钥签名。颁发证书之前,CA 将对请求主体的身份进行验证。因此,PDC 的出现https://docs.oracle.com/cd/E19957-01/820-4823/gfmeu/index.html
21.当后端位于https上时,Nuxt3Js“自签名证书错误”那些遇到过开发服务器将向 API 发出请求,并忽略其自签名证书未经授权的事实。 用于在 API 具有自签名证书时在开发计算机上测试构建,运行后 npmrun build Run Code Online (Sandbox Code Playgroud) 然后启动服务器: NODE_TLS_REJECT_UNAUTHORIZED='0'node .output/server/index.mjs https://qa.1r1g.com/sf/ask/5072304541/
22.最新创建或获取 SSL 证书首先,你需要一个 SSL 证书。可以使用自签名证书进行本地开发。使用 Java 自带的 keytool 工具生成自签名证书。生成自签名证书:keytool -genkeypair -alias myapp -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore keystore.p12 -validity 3650此命令将生成一个 keystore.p12 文件,该https://www.sdk.cn/
23.Nginx实战:编译安装,在线升级,实现多域名http和https,自动跳转# 按照编译安装的参数,修改好自启动服务文件 [root@CentOS84-Nginx-IP08 ]#vim /usr/lib/systemd/system/nginx.service [root@CentOS84-Nginx-IP08 ]#cat /usr/lib/systemd/system/nginx.service [Unit] Description=nginx-high performance web server https://blog.51cto.com/shone/5146272
24.思科身份服务引擎管理员指南,版本3.1从思科 ISE 版本 3.1 补丁 1 开始,可以使用生成自签名证书 API。 策略:这些 API 提供管理策略的功能。它们分为两种类型: RADIUS 策略 (RADIUS Policy):这些 API 提供管理 RADIUS 策略的功能。它们使您能够获取所有所需边界(授权配置文件、安全组、IdentityStore、配置文件)和发现词典过滤器帮助程序https://www.cisco.com/c/zh_cn/td/docs/security/ise/3-1/admin_guide/b_ise_admin_3_1/b_ISE_admin_31_basic_setup.html