什么是自签名证书

小白 2022-05-06 00:51:44
问答

自签名证书是由不受信的CA机构颁发的数字证书,也就是自己签发的证书。与受信任的CA签发的传统数字证书不同,自签名证书是由一些公司或软件开发商创建、颁发和签名的。虽然自签名证书使用的是与X.509证书相同的加密密钥对架构,但是却缺少受信任第三方验证。

自签名证书可以指许多不同的证书类型,包括 SSL/TLS 证书、S/MIME 证书、代码签名证书等,其中最常见的证书类型是自签名 SSL 证书。与 CA 颁发的 SSL 证书不同,自签名证书通常指的是那些未经第三方验证,直接上传到私有公钥基础结构 (PKI) 的证书文件。

SSL

什么是自签名 SSL 证书?

自签名证书是由不受信的 CA 机构颁发的数字证书,也就是自己签发的证书。与受信任的 CA 签发的传统数字证书不同,自签名证书是由一些公司或软件开发商创建、颁发和签名的。虽然自签名证书使用的是与 X.509 证书相同的加密密钥对架构,但是却缺少受信任第三方的验证。在颁发过程中缺乏独立验证会产生额外的风险,这就是为什么对于面向公众的网站和应用程序来说,自签名证书是不安全的。

自签名证书有什么优势?

虽然使用自签名证书有风险,但也有其用途。

免费。自签名证书是免费提供的,任何开发人员都可以申请。

随时签发。自签名证书可以随时随地签发,不用等待第三方证书颁发机构的验证和签发。

加密。自签名 SSL 证书使用与其他付费 SSL/TLS 证书相同的方法加密传输数据。

方便。自签名证书不会在一段时间后过期或需要续订,但 CA 颁发的证书却会在一段时间后过期,还需要续订。

虽然自签名证书看起来很方便,但这也是这些证书的主要问题之一,因为它们无法满足针对发现的漏洞进行安全更新,也不能满足当今现代企业安全所需的证书敏捷性。因此,很少人使用自签名 SSL 证书。此外,自签名证书无法撤销证书,如果证书被遗忘或保留在恶意行为者开放的系统上,则会暴露所使用的加密方法。不幸的是,即便如此,一些 IT 部门认为,证书颁发机构颁发的证书的成本超过了降低额外验证和漏洞支持的风险。

自签名证书有什么缺陷?

不受浏览器信任,易丢失用户。

每当用户访问使用自签名证书的站点时,他们会收到“不安全”警告,显示诸如“error_self_signed_cert”或“err_cert_authority_invalid”之类的错误,要求用户确认他们愿意承担风险继续浏览。这些警告会给网站访问者带来恐惧和不安,用户会认为该网站已被入侵,无法保护他们的数据,最后选择放弃浏览该站点转而访问不会提示安全警告的竞争对手网站。另外,不受浏览器信任的自签名证书,地址栏不会显示安全锁和 HTTPS 协议头。下图为 SSL 证书在浏览器地址栏中的状态显示,左边为自签名 SSL 证书,右边为受信 CA 颁发的 SSL 证书:

不安全。

由于自签名证书支持超长有效期,因此也无法在发现新的漏洞后进行安全更新,容易受到中间人攻击破解。自签名 SSL 证书没有可访问的吊销列表,也容易被黑客伪造、假冒网站利用,不能满足当前的安全策略,存在诸多的不安全隐患。

企业可以使用自签名证书吗?

如前所述,使用自签名证书会带来很多风险,特别是在公共站点上使用自签名证书的风险更大。对于处理任何个人敏感信息的网站,包括健康、税务或财务记录等信息,万万不可使用自签名证书。类似这样的数据泄露会损害用户对品牌的信任度,还会遭到隐私法规的处罚,损害企业的经济利益。

许多人认为在公司内部的员工门户或通信站点部署自签名证书没有风险,但事实并非如此。因为在这些站点使用自签名证书仍会导致浏览器安全警告。虽然可以忽略这些警告,但却无意中助长了员工忽略安全警告的习惯。这种行为习惯可能会使企业今后面临更大的风险。

虽然我们不推荐企业使用自签名证书,但它也并不是没有用处。一般来说,自签名证书可以用于内部测试环境或限制外部人员访问的 Web 服务器。

如何创建自签名证书?

虽然自签名证书存在一定的安全隐患,但有它的优势,这里给大家分享一下创建自签名证书的方法。其实,创建自签名 SSL 证书很简单,主要取决于您的服务器环境,如 Apache 或 Linux 服务器。方法如下:

1. 生成私钥

要创建 SSL 证书,需要私钥和证书签名请求(CSR)。您可以使用一些生成工具或向 CA 申请生成私钥,私钥是使用 RSA 和 ECC 等算法生成的加密密钥。生成 RSA 私钥的代码示例:openssl genrsa -aes256 -out servername.pass.key 4096,随后该命令会提示您输入密码。

2. 生成 CSR

私钥生成后,您的私钥文件现在将作为 servername.key 保存在您的当前目录中,并将用于生成 CSR。自签名证书的 CSR 的代码示例:openssl req -nodes -new -key servername.key -out servername.csr。然后需要输入几条信息,包括组织、组织单位、国家、地区、城市和通用名称。通用名称即域名或 IP 地址。

输入此信息后,servername.csr 文件将位于当前目录中,其中包含 servername.key 私钥文件。

3. 颁发证书

最后,使用 server.key(私钥文件)和 server.csr 文件生成新证书(.crt)。以下是生成新证书的命令示例:openssl x509 -req -sha256 -days 365 -in servername.csr -signkey servername.key -out servername.crt。最后,在您的当前目录中找到 servername.crt 文件即可。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • 群晖 Synology NAS

    群晖NAS如何实现加密传输

    群晖NAS提供了HTTPS协议来实现加密传输。在管理界面上“控制面板”->“网络”->“DSM设置”,勾选“启用HTTPS连接”,并设置HTTPS端口,为了确保加密通信的安全性,可以通过使用自签名证书、Let's Encrypt证书或第三方证书来配置SSL证书。
  • 群晖 Synology NAS

    群晖NAS如何搭建邮件服务器

    搭建邮件服务器是群晖NAS的一个强大功能,使您能够在家庭或办公环境中自主控制邮件交流。通过正确配置和管理,您可以创建安全可靠的邮件服务器,并为用户提供高效的邮件服务。群晖NAS的邮件服务器功能还提供了许多其他设置选项,如SSL证书、防火墙和邮件过滤,以满足不同用户的需求。
  • TrueNAS

    TrueNAS如何支持远程访问

    TrueNAS提供了多种方式来支持远程访问,使用户能够安全、方便地访问和管理其存储数据。通过正确设置和配置网络、安全选项和访问权限,用户可以轻松地实现远程访问功能。然而,在配置远程访问时务必注意安全性,包括更新系统、使用安全凭据和监控活动。
  • Certbot

    Certbot是什么

    Certbot是一款免费且开源的自动化安全证书管理工具,由电子前沿基金会(EFF)开发和维护,是在Linux、Apache和Nginx服务器上配置和管理SSL/TLS证书的一种机制。Certbot可以自动完成域名的认证并安装证书。
  • 公开密钥认证

    公开密钥认证是什么

    公开密钥认证(Public key certificate)又称数字证书或身份证书。是用于公开密钥基础建设的电子文件,用来证明公开密钥拥有者的身份。此文件包含了公钥信息、拥有者身份信息(主体)、以及数字证书认证机构(发行者)对这份文件的数字签名,以保证这个文件的整体内容正确无误。
  • 中间人攻击 Man-in-the-middle attack

    中间人攻击是什么

    中间人攻击(MITM)在密码学和计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。