Certificate 如何在Linux上创建自己的通配符证书?

Certificate 如何在Linux上创建自己的通配符证书?,certificate,ssl-certificate,Certificate,Ssl Certificate,有人知道是否可以在Ubuntu下创建我自己的通配符证书吗?例如,我希望以下域使用一个证书: https://a.example.com https://b.example.com https://c.example.com 只需按照使用OpenSSL创建您自己的证书的分步说明进行操作,但将“公共名称”替换为*.example.com 通常你需要多存一点钱来获得证书 > openssl req -new -x509 -keyout cert.pem -out cert.pem -days

有人知道是否可以在Ubuntu下创建我自己的通配符证书吗?例如,我希望以下域使用一个证书:

https://a.example.com
https://b.example.com
https://c.example.com
只需按照使用OpenSSL创建您自己的证书的分步说明进行操作,但将“公共名称”替换为
*.example.com

通常你需要多存一点钱来获得证书

> openssl req -new -x509 -keyout cert.pem -out cert.pem -days 365 -nodes
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Germany
Locality Name (eg, city) []:nameOfYourCity
Organization Name (eg, company) [Internet Widgits Pty Ltd]:nameOfYourCompany
Organizational Unit Name (eg, section) []:nameOfYourDivision
Common Name (eg, YOUR name) []:*.example.com
Email Address []:webmaster@example.com
(对不起,我最喜欢的howto是一个德语文本,我没有现成的,目前也找不到,因此有很多链接)

2017年编辑:这个问题的原始答案来自2009年,当时证书的选择不包括完全自动化和免费选项,如。如今(如果Let's Encrypt的“域验证”认证级别足以满足您的需要),为每个子域获取单独的证书是很简单的。如果您需要比域验证更高的信任级别,通配符证书仍然是一个选项

同样从2017年开始,请注意@ha9u63ar的以下评论:


根据RFC 2818第。3不再推荐使用CN进行主机名标识(不推荐使用)主题替代名称(SAN)似乎是一种可行的方法


我对这一评论的回答是:我相信现在任何颁发通配符证书的CA都会有一套合适的指令。对于一个自我签名的快速修复,我不担心。另一方面,随着LetsEncrypt的出现,我已经很久没有创建自签名证书了。哎呀,这个答案真的显示了它的年龄。

我可以在任何主机上运行,还是只在我的站点所在的主机上运行?你可以在任何主机上使用它。但是,如果请求转到www.example.net,而证书是针对*.example.com的(请注意net/com的差异),您将得到通常的不匹配证书警告。但是,您可以有许多不同的机器,一台为www.example.com服务,另一台为a.example.com、b.example.com等服务,并且所有机器都使用相同的证书。只有当您使用不匹配的域名访问它们时,它才会中断。我相信这适用于
https://xyz.example.com
,但不适用于
https://example.com
。Google搜索SAN(subjectAltName)扩展。只需添加@OlafKock提到的德语教程(对于像我这样的人),我想它是非常完整和可理解的(IMHO)。根据RFC 2818第。3不再推荐使用CN作为主机名标识(不推荐使用)主题替代名称(SAN)似乎是一种可行的方法。