IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:SSL

共 27 篇相关文章

IT 累计浏览 2,111

如何免费的让网站启用HTTPS

作者分享的是他将个人技术博客CoolShell从HTTP升级到HTTPS的完整实践过程。文章背景很具体:因为HTTP访问在国内被运营商劫持注入了广告,同时考虑到HTTP在搜索引擎中的排名劣势,作者决定为网站免费启用HTTPS加密。 核心方案围绕开源的证书颁发机构Let’s Encrypt展开。作者通过其官方推荐的Certbot工具,在Nginx和Ubuntu系统上实现了证书的自动签发与安装。文章不仅给出了具体的命令行步骤,还分享了一个关键优化点:建议在Nginx配置中开启HTTP/2协议,以显著提升HTTPS下的传输性能。此外,针对Let’s Encrypt证书90天过期的特点,作者演示了如何用crontab设置定时任务来自动续期证书,确保服务不间断。 最后,文章也指出了启用HTTPS后的“收尾工作”:需要在WordPress等内容管理系统中,将所有的资源链接从http://强制修改为https://,并更新相关缓存插件设置,否则浏览器会因混合内容而阻断页面加载。整个过程从问题出发,到具体实施与优化,形成了一个清晰可复现的免费方案闭环。

IT 累计浏览 2,863

三种解密 HTTPS 流量的方法介绍

这篇讲的是如何从技术层面解密 HTTPS 流量,作者从三种最常规的方法入手,深入浅出地剖析了 HTTPS 并非绝对安全背后的原理。 文章首先介绍了中间人攻击(MITM)方式,Fiddler、Charles 等调试工具就是通过向系统导入自签的根证书,充当浏览器和服务器间的“中间人”来解密流量。其次,文章探讨了如何使用 Wireshark 配合网站的 RSA 私钥进行解密。不过,作者明确指出了这种方法的局限:它只能解密采用 RSA 密钥交换的流量,对于目前主流的、具备前向安全性的 ECDHE 密钥交换则无能为力。因此,它也无法解密 HTTP/2 流量。 第三种方法则依赖于浏览器自身的 `SSLKEYLOGFILE` 环境变量。设置后,浏览器会导出密钥日志,使得 Wireshark 能够解密包括 ECDHE 在内的所有流量,但这主要用于开发者调试,并非安全漏洞。 文章最后给出了切实的安全建议:网站应启用具有前向安全性的 ECDHE 算法,并部署证书透明度等机制;用户则需警惕不受信的证书导入,并关注客户端自身的安全,因为恶意扩展同样能在浏览器内部窃取数据。

IT 累计浏览 3,187

wordpress/nginx安全设置

这篇讲的是如何给WordPress博客加固登录安全,作者从两个实战层面入手:插件增强认证与通信链路加密。 首先,文章详细演示了如何通过Google Authenticator插件为WordPress登录添加双重验证。这类似于谷歌账户的“两步验证”,原理是在密码之外,增加一道由手机App动态生成的验证码,能有效防范密码泄露风险。作者还梳理了其他类似安全插件,如一次性密码、IP锁定等,提供了更全面的选择思路。 其次,更进阶的一步是配置Nginx反向代理下的SSL(HTTPS)登录。作者不仅说明了如何在WordPress配置文件中启用强制SSL,还提供了从生成自签名证书到编写完整Nginx配置的全过程。过程中特别指出了一个典型坑点:Nginx配置不当会导致后台CSS文件的MIME类型错误,并给出了具体的修正配置,这部分对实际操作很有参考价值。 整个方案从认证加固到传输加密,层层递进,解决的是WordPress站点常见的登录安全隐患,过程细节扎实,踩坑点清晰。

IT 累计浏览 2,070

从无法开启 OCSP Stapling 说起

这篇讲的是,作者从读者常问的“为什么在Nginx中配置了 ssl_stapling on 却没生效”这个问题出发,深入剖析了OCSP Stapling的原理与实操。文章先简要回顾了OCSP(在线证书状态协议)会拖慢TLS握手,而OCSP Stapling(让服务端主动提供状态)是优化这一过程的关键。 接着,作者没有停留在理论,而是手把手教读者一个轻量的排查方法:使用openssl命令行工具进行验证。通过一条具体命令和对输出结果的解读(比如看到“OCSP Response Status: successful”就说明已开启),读者可以快速自检,而无需等待SSL Labs的漫长检测。 文章进一步深入,展示了完整的OCSP Response内容,并解释了其由“验证数据”和“签名证书”两部分组成。最后,文章还指导读者如何在本地获取证书链并主动查询OCSP信息,从原理层面帮助开发者真正理解这一机制,而不仅仅是配置一行代码。

IT 累计浏览 2,878

SSL多域名绑定证书的解决方案

这篇讲的是如何在一个服务器上,为多个不同的域名部署HTTPS服务。传统上,一张SSL证书通常绑定一个域名,但在实际运维中,我们常常遇到一个服务器需要同时承载多个域名的情况。文章从这个现实背景出发,梳理了几种主要的解决方案。 最直接的方式是采用虚拟主机技术,为每个域名分配独立的IP地址并绑定各自证书,但这对IP资源要求较高。对于同级子域名,可以申请通配符证书,但它只能匹配二级子域名,无法覆盖更深层级或主域名本身。更灵活的方案是使用支持“使用者可选名字”(SAN)扩展的证书,通过XCA等工具,就能将多个不同的域名都写入同一张证书中。 如果必须为每个域名单独签发证书,那么SNI(服务器名称指示)技术就成了关键。它允许服务器在SSL握手阶段就识别出客户端请求的域名,从而返回正确的证书,实现“单IP、多证书”。文章指出,这项技术已获得主流浏览器和Web服务器的支持,为灵活部署HTTPS提供了坚实的基础。

IT 累计浏览 2,562

搭建自己的CA服务 – OpenSSL CA 实战

这篇讲的是如何用OpenSSL从零搭建一个私有CA服务,特别适合那些内部节点间需要SSL加密通信,又不想向公共CA支付证书费用的场景。 作者从“内部通信也需要安全认证但成本高昂”这一现实问题出发,提供了一份完整的OpenSSL自建CA实战指南。文章的核心是手把手的操作流程:从准备关键的openssl.conf配置文件开始,一步步创建CA自己的私钥、自签根证书,再到用这个CA为其他服务器颁发和签署证书。每一步都配有可直接运行的详细命令行示例,比如生成4096位RSA密钥、设置证书主体信息等,可操作性很强。 通过搭建自己的CA,你可以完全掌控内部系统的证书颁发与管理,既确保了节点间通信的安全性,又省去了向第三方CA申请证书的开销。对于需要快速为内部服务批量建立信任关系的运维和开发人员来说,这套自给自足的方案相当实用。

IT 累计浏览 3,662

给Nginx配置一个自签名的SSL证书

这篇讲的是如何为Nginx配置一个自签名SSL证书,来快速启用HTTPS安全连接。 在Web开发中,HTTPS几乎是保障浏览器与服务器通信安全的必选方案,但向证书颁发机构申请正式证书往往需要每年几十到几百美元的费用。如果只是为了内部管理或测试目的,自签名证书就能提供一个零成本的解决思路。 文章从SSL证书验证的两种模式切入,解释了为什么普通网站通常只验证服务器证书,并点明自签名证书的适用场景。核心方案部分,作者详细演示了利用openssl创建证书的四步流程:生成密钥、创建签名请求、移除口令并最终签名。为了简化操作,文章还提供了一个shell脚本,以域名www.test.com为例,展示了从运行脚本到输入口令的完整交互过程,以及生成的四个关键文件。 配置环节,文章明确指出Nginx需要加载证书和密钥文件的具体路径,并附上了示例配置。最后还提到一个实用技巧:让Nginx统一处理HTTPS,后端应用服务器只用HTTP连接,这样既发挥了Nginx在处理SSL方面的优势,也避免了其他服务器配置证书的复杂性。整个过程下来,即使是自签名证书,也能让管理员通过浏览器安全地连接到服务器进行维护。

IT 累计浏览 2,670

Linux使用curl访问https站点时报错汇总

这篇整理了在使用Linux的curl命令行工具访问HTTPS站点时,几类最常见的证书相关报错及其解决方法。文章指出,问题的根源往往在于不同客户端(如curl、浏览器、Java程序)使用独立的证书库,而Linux的curl默认依赖位于 `/etc/pki/tls/certs/ca-bundle.crt` 的文件。 摘要列举了四种典型情况:遇到“Peer’s Certificate issuer is not recognized”时,多是由于自签名证书未被信任,解决方法是将私有CA的公钥追加到系统证书库中。而“certificate verify failed”错误,则常因本地CA证书库过旧,无法识别新签发的证书,需要下载最新的cacert.pem进行替换或使用系统命令更新。当遇到“unknown message digest algorithm”时,根源在于系统的OpenSSL版本过低,不支持如SHA-256等新算法,升级OpenSSL是必要步骤。 文章最后还对比了Java和PHP处理HTTPS的机制,指出它们拥有自己的证书库(如Java的cacerts),与系统curl的证书库相互独立。整篇文章以实战报错为线索,提供了直接的操作路径,对于解决这类环境配置问题很有参考价值。

IT 累计浏览 5,428

HTTPS、SSL与数字证书介绍

这篇讲的是HTTPS、SSL与数字证书三者如何协同工作,共同构筑起现代互联网通信的安全基石。作者从安全通信的基本需求出发,清晰地拆解了HTTPS(安全的超文本传输协议)的本质——在HTTP和TCP之间加入一个加密层,而SSL(或其升级版TLS)正是实现这个加密层的关键协议。 文章没有停留在概念罗列,而是深入到了实现机制。它通过一个生动的A与B对话场景,形象地演示了SSL/TLS协议的“握手”过程:如何巧妙地结合非对称加密(用于安全地协商密钥)和对称加密(用于高效地传输数据)来平衡安全性与性能。同时,详细阐述了数字证书的核心作用——它如同网络世界的“身份证”,由权威的证书颁发机构签发,用于验证服务器身份并分发公钥,从而防止中间人攻击。 对于证书的信任链,文章也给出了直观解释:客户端(如浏览器)内置了受信任的根证书列表,只有由这些机构颁发的证书才会被信任。整体而言,这篇文章将抽象的安全概念落到了具体的协议交互与文件验证上,是理解HTTPS工作原理的一篇扎实导读。

IT 累计浏览 1,033

以keystore方式为play!应用建立单向/双向SSL

这篇讲的是如何在Play!框架中配置SSL安全连接,而且特别澄清了官方文档的不足之处,避免读者被过时资料误导。 作者先理清了SSL的核心:用对称加密传输数据,非对称加密(RSA)安全传递密钥。在此基础上,解释了单向SSL(服务端验证)和双向SSL(服务端与客户端互相验证)的区别,后者适用于需要严格控制访问权限的内部服务。 配置的关键在于正确设置keystore。文章详细演示了生成服务端密钥库(certificate.jks)的命令,并特别指出密钥库口令与密钥口令必须一致这个容易忽略的坑。对于单向SSL,配置到此即可。 如果需要双向SSL,流程还涉及在客户端生成并导出证书,然后将该证书导入服务端的密钥库进行“授信”。整个过程通过具体的keytool和openssl命令逐步拆解,甚至涵盖了使用curl和浏览器进行测试的不同方法,非常实操。 文章用清晰的步骤,把Play!应用如何建立从单向到双向的SSL连接,从原理到命令都讲透了。

IT 累计浏览 2,833

[Android]用WebView访问证书有问题的SSL网页

这篇讲的是在Android开发中,使用WebView加载SSL证书有问题的网页时,如何绕过其默认的安全拒绝机制。核心问题在于,当网页证书过期、不正确或不被信任时,WebView会直接阻止页面加载,不像PC浏览器会弹出警告让用户选择。 要解决这个问题,关键在于重写WebViewClient的onReceivedSslError()方法。作者指出了一个极易踩坑的细节:在重写的方法里,必须直接调用handler.proceed()来忽略错误继续加载,并且**千万不要**调用super.onReceivedSslError()。这是因为父类的实现中包含了handler.cancel(),会导致加载失败,甚至可能引发段错误崩溃。 通过这个简单但实用的技巧,开发者就能让WebView加载那些因证书问题被系统拦截的网页,这在开发调试或处理特定网络环境时非常有用。

IT 累计浏览 6,396

中间人攻击(man-in-the-middle attack):你和互联网中间的第三人

这篇从GitHub访问异常的事件谈起,具体解释了“中间人攻击”这一安全威胁。作者先用爱丽丝与鲍伯的通信故事,生动演示了攻击者如何在看似加密的通道中窃听并篡改信息,指出在公共Wi-Fi等场景下,密码和聊天记录都可能暴露。 文章进一步对比了主流浏览器对这类攻击的检测能力。现代浏览器在遇到伪造SSL证书时会持续发出醒目警告,而当时市场占有率很高的360安全浏览器,在第二次访问同一伪造站点时,竟弹出了“绿色网站认证”的提示,这与它的“安全”名称形成了鲜明反差。 作者基于此事件强调,中间人攻击具有隐蔽性和现实危害,那次针对GitHub的攻击就持续了约一小时。文章最后提供了一个可用于实时比对真假证书的工具,帮助读者在实践中加深理解。

IT 累计浏览 3,818

CHAP、HMAC、HOTP、TOTP等等

这篇讲的是密码安全中一个常被忽视的维度——存储与传输的协同考量。作者从CSDN密码泄露案和LinkedIn事件切入,回顾了业界对明文存储密码的广泛批评,但他提出了一个反直觉的观点:密码保存与传输不能割裂看待,除非已有SSL等安全信道,否则明文存储反而可能更优。 文章梳理了CHAP、HMAC、HOTP、TOTP等常见认证协议,但重点落在密码存储策略的反思上。作者指出,在缺乏端到端加密的场景下,盲目哈希或加密存储可能掩盖了更根本的传输风险。核心结论是:安全设计需优先保障传输层,再处理存储层,避免本末倒置。 通过分析这些实际事件,作者揭示了密码管理中的权衡复杂性。他启发读者重新审视系统安全架构,不要迷信单一技术方案,而应全面评估威胁模型——比如在CSDN案例中,问题根源可能不仅是存储方式,还有整个传输链的脆弱性。这种视角促使开发者更务实地应对密码安全挑战。

IT 累计浏览 2,886

puppetmaster集群解决方案之puppet客户端共享一张证书

这篇讲的是如何简化Puppet在大规模集群环境下的证书管理难题。 作者从实际生产环境出发,指出当Puppet客户端节点数量激增时,每台机器独立维护证书会导致管理开销剧大,证书分发、更新和吊销都成为运维的沉重负担。为了解决这个问题,文章提出了一种“客户端共享一张证书”的集群化方案。核心思路是让同一集群内的所有客户端节点共用同一套证书进行身份认证。 文章详细阐述了实施该方案的具体步骤与配置调整,并分析了其带来的显著收益:极大简化了证书生命周期管理,降低了运维复杂度。同时也坦诚地讨论了其潜在的安全影响——身份颗粒度的变粗——并指出这适用于对个体身份区分要求不高的内部可信集群场景。这种方案在管理便利性与安全隔离性之间找到了一个务实的平衡点。

IT 累计浏览 2,835

gen_tcp接受链接时enfile的问题分析及解决

这篇讲的是一个在生产环境里,Erlang/OTP 应用使用 `gen_tcp` 模块处理大量并发连接时,意外遇到 `enfile` 错误的踩坑与排查故事。 作者从问题现象出发:服务日志中突然涌现 `enfile`(文件描述符不足)的报错,但系统层面的 `ulimit` 和应用配置的端口限制都还有富余。这种“矛盾”现象直接导向了更深层的排查。经过对系统资源、进程状态以及网络配置的逐层分析,作者最终定位到根本原因在于 Linux 内核的 `net.core.file-max` 参数——它设定了整个系统能够打开的文件描述符总数的上限。当每个 TCP 连接和监听套接字都消耗一个文件描述符时,这个硬性上限被悄然触及,而常规的单进程 `ulimit` 设置对此无能为力。 文章清晰地梳理了从现象、困惑到最终破解谜题的全过程。解决方案不仅包括调整 `sysctl.conf` 中的 `file-max` 值,也强调了在高并发网络服务规划中,必须将这一内核级全局参数纳入考量,而非仅仅关注单个应用的资源限制。这个案例为从事类似网络编程的开发者提供了一个宝贵的系统级视角,提醒我们在面对资源问题时,需要上下贯通地审视从应用代码到操作系统内核的整条链路。

IT 累计浏览 5,185

SSL Proxy

这篇讲的是SSL Proxy的深入解析。作者从之前的浅析出发,在最近的讨论中意识到对SSL Proxy的理解还不够透彻,于是重新梳理了其实现原理和关键细节,力求更细致地呈现这个常见却容易被简化的技术点。 SSL Proxy通常用于处理加密流量,比如在网络安全监控或负载均衡场景中,核心目标是高效解密数据流、分析内容后再加密转发。文章聚焦于其内部实现思路:从SSL/TLS握手的详细步骤,到证书链验证和密钥交换的机制,作者逐步拆解了代理如何透明地介入加密通信。一个巧妙之处在于会话复用策略,通过缓存SSL会话状态来减少重复握手开销,这在高并发环境下能显著降低延迟——文章用实际配置示例说明了这一点,比如调整缓存超时参数对性能的影响。 同时,作者对比

IT 累计浏览 4,027

通过ssldump来分析ssl协议过程

这篇讲的是一个在调试SSL/TLS连接时非常实用的命令行工具——ssldump。作者从一次典型的网络排查场景出发,介绍了如何用它直接、实时地解析网络流量中的SSL/TLS握手过程与加密数据。 文章的核心价值在于,它超越了工具的基本用法,深入到协议细节。你能看到ssldump如何清晰展示客户端与服务器协商时发送的ClientHello、ServerHello消息中的具体字段,比如支持的TLS版本、密码套件、SNI扩展等。这对于理解为何握手失败、证书验证不通过等问题非常直观。作者还演示了如何利用会话密钥来解密后续的通信数据(需要预先提供密钥),从而将看似密文的流量还原成可读的HTTP等应用层内容。 相比Wireshark等图形化工具,ssldump的优势在于轻量、快速,且能直接在服务器端进行分析,尤其适合在无法获取完整流量包、只能通过命令行访问的生产环境或远程主机上进行紧急排查。文章通过具体的命令示例和输出解读,让这个老牌工具重新焕发生机,成为运维和安全工程师工具箱里一个值得掌握的利器。

IT 累计浏览 7,671

nginx 使用 ssl

这篇讲的是如何在Nginx服务器上正确配置SSL证书,为网站启用HTTPS加密连接。作者从最基础的证书生成环节入手,展示了使用OpenSSL工具创建密钥和证书签名请求(CSR)的具体命令行操作,并对过程中需要填写的关键信息(如域名、组织名称)做了提示。随后,文章核心部分详细演示了在Nginx配置文件中引用生成的证书和密钥文件,包括server块的基本结构、监听443端口以及设置ssl_certificate和ssl_certificate_key指令。通过这样一步步的讲解,即便是不熟悉SSL配置的开发者,也能跟着完成从证书申请到Nginx服务安全部署的完整流程,确保数据传输的安全性。

IT 累计浏览 2,827

Linux下自行颁发SSL证书

这篇讲的是作者如何在Linux服务器上,使用OpenSSL工具链自行颁发一套用于开发或内部环境的SSL证书。文章从为什么需要自签名证书(例如本地测试、内网服务)讲起,清晰地梳理了整个流程。 核心方案聚焦于使用OpenSSL命令行工具完成操作。作者演示了如何生成服务器私钥与证书签名请求(CSR),并强调了创建私有CA(证书颁发机构)的重要性——这样可以像真实的证书链一样,签发并管理多个内部服务的证书,而不仅仅是一个。步骤中包含了配置OpenSSL的细节、设置证书有效期、指定主题备用名称(SAN)等关键参数。 文章还提及了在Nginx等Web服务器中配置这些证书的具体方法。最后,它指出了自签名证书的根本局限:不被公共信任,因此严格适用于测试、开发或可信的内网环境,绝不能用于公网的正式网站。整个过程将原本可能令人困惑的命令行操作,拆解成了可跟随的实用指南。

IT 累计浏览 1,965

常用证书转成标准证书文件的方法

这篇讲的是如何将不同平台常用的SSL证书文件转换为标准格式。作者从同事遇到的实际问题出发——在IIS和IBM IHS等环境中,导出的证书格式往往不是通用的PEM或DER标准格式,导致在其他服务器或负载均衡器上无法直接使用。文章针对PFX(IIS常见)和JKS(Java环境常见)这两种典型格式,详细记录了具体的转换命令和操作步骤。核心方案是利用OpenSSL工具链,通过几行清晰的命令完成解包、密钥提取与格式封装,把特定于平台的证书“翻译”成Web服务器普遍接受的证书文件。作者特别说明了转换过程中需要注意的中间格式和密码处理,让读者能避开常见的格式混乱陷阱。整篇文章没有空谈理论,而是直接提供可复用的操作指南,适合经常需要在不同技术栈间迁移或部署SSL证书的运维和开发人员参考,能有效节省排查格式兼容性问题的时间。