将自签名证书导入 "Trusted Root Certification Authorities" 商店是否错误?

Is it wrong to import a self-signed certificate to "Trusted Root Certification Authorities" store?

我已经创建了一个自签名证书来签署我的程序。 我注意到使用以下方式导入证书:

certutil.exe -addstore root "Tmp.crt"

使 UAC 警告“更友好”(显示发布者名称,无需向证书颁发机构支付数百美元。

我的程序专门针对一小部分人。创建提示询问用户是否要将证书安装到“受信任的根证书颁发机构”商店是否安全?假设他们已经足够信任该程序,允许从管理权限开始。

这没有错,但如果他们不是从可信来源获取您的应用程序,则可能不安全。您可以改为从 Let's Encrypt 项目申请免费证书。这是他们入门页面的 link:

Let's Encrypt Getting Started

如果他们导入并信任您的自签名证书,则会明确要求他们信任您。

如果您使用来自“官方”(=付费)证书颁发机构的代码签名证书,他们不会明确要求他们信任您,但他们信任您的证书隐含地通过该证书颁发机构。他们从未被问及他们是否信任该权威,因为操作系统为他们信任它。

因此,我看不出要求信任您的自签名证书比依赖其他人决定信任证书颁发机构更不安全。唯一的缺点是用户可能会因为被问到一些他们通常不会问的问题而感到不安。

您可以通过让您的程序检查已签署的证书来提高安全性,以确保它确实是您自己签署的证书。