前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获得具有商业签名的TLS证书

获得具有商业签名的TLS证书

作者头像
PantaZheng
发布2018-09-05 17:21:34
1.4K0
发布2018-09-05 17:21:34

如果您打算托管一个可公开访问的使用HTTPS的网站,那么您将需要安装一个具有商业签名的TLS证书,这样访问您网站的人就不会在浏览器中收到有关不安全连接的警告。

最简单的方法是通过Let's Encrypt来进行证书签名。虽然CertBot工具可以通过Let's Ebcrypt实现非常简单的获取和更新证书,但是此方案并不是适合所有用户的。

如果您需要域验证证书扩展验证证书,则必须创建提交给如Thawte或Verisign这样的证书颁发机构(CA)的证书签名请求(CSR)。这也是本指南所关注的获取具有签名的TLS证书的方法。

某些CA允许您在其上注册帐户后通过其Web界面直接创建CSR。正如本指南所提及的,这无疑会比在手动地在服务器或本地主机上创建CSR更加便利。

在决定所申请的公司之前请彻底研究相关证书颁发机构,这些公司将通过HTTPS保护客户的个人信息、加密签名电子邮件或授予对内部平台的访问权限。

如果您打算在网站上使用您的SSL证书,请在实现本指南中的过程后,参考我们另一篇文章指南在NGINX上启用针对HTTPS连接的TLS

创建证书签名请求(CSR)

  1. 切换到root用户权限并定位到要在其中创建证书信息的目录: su - root mkdir /root/certs/ && cd /root/certs/
  2. 创建服务器密钥和CSR: openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout example.com.key -out example.com.csr 系统将提示让您将您的网站或组织的标识信息添加到证书中,因为将会依据此信息来创建证书并传递给证书颁发机构进行注册签名,所以信息需要是精准的。 以下是此命令中使用的OpenSSL选项的细化说明。尽管还提供很多可选项,但这里的目标就是创建一个可以良好使用一年的证书。有关更多信息,请参阅终端中man openssl的提醒。
  • -newkey rsa:4096:创建一个用于证书使用的4096位RSA密钥。虽然是最新版本OpenSSL默认设置密钥为RSA 2048,但为了确保密钥大小,您应该在创建时候指定它。
  • -sha256:使用265位SHA(安全散列算法)生成证书请求。
  • -days:确定证书的允许验证时间长度(以天为单位)。对于商业证书,此值不应高于730(2年)。
  • -nodes:创建不需要密码的证书。如果不启用此选项,则每次重新启动应用程序时,都需要在控制台中输入密码。

这是输出的一个样例。你可以安全地将extra attributes额外配置选项留空,只需按Enter键跳过选项:

代码语言:txt
复制
root@localhost:~# openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout example.com.key -out example.com.csr
Generating a 4096 bit RSA private key
..+++
......................................+++
向`example.com.key`写入新的密钥
-----
您需要输入需要被合并加入相关证书请求的信息。
您需要输入的信息被称为识别名或者简称为DN。
您可以留空许多字段,很多字段都会有默认配置
如果您输入'.', 则相关字段将会留空
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Philadelphia
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linode
Organizational Unit Name (eg, section) []:Docs
Common Name (e.g. server FQDN or YOUR name) []:hostname.example.com
Email Address []:admin@example.com

请记得输入下列将会发送到证书请求中的额外参数
A challenge password []:
An optional company name []:l

您的证书颁发机构的根证书

大多数现代Linux发行版都附带了安装为ca-certificates软件包一部分的通用根CA证书,其位于/etc/ssl/certs/ca-certificates.crt文件中。

或者说,如果您的ca-certificates依赖中未包含CA的根证书,请直接从证书颁发机构的网站下载证书。获得证书后,将文件移动到源目录并更新依赖包来手动添加证书。

CentOS

代码语言:txt
复制
cp rootCert-example.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust

Debian或Ubuntu

代码语言:txt
复制
cp rootCert-example.crt /usr/local/share/ca-certificates/
update-ca-certificates

将您的CSR提交给您的证书颁发机构

将证书签名请求提交给CA。不同CA的步骤可能会不同,有些CA有视频或书面说明来指导您完成整个过程。它通常包括以下步骤:

  1. 登录您的CA帐户。
  2. 通过Web管理控制台上传您的CSR。
  3. 几天后,您可以下载已签名的证书并安装到您的服务器中。

准备链式SSL证书

许多CA将给中间机构颁发证书,而获得该类证书必须与根证书组合在一起。

如果您从CA收到多个以.crt结尾的文件(统称为链式SSL证书),则必须按特定顺序将它们链接到一个文件中,以确保与大多数浏览器完全兼容。以下示例使用由Comodo签名的链式SSL证书。

合并各个证书:

cat example.com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > www.mydomain.com.crt

此表可以更好更直观地了解组成链式证书地的相关命令:

证书类别:

中间机构:

颁发机构:

最终用户证书

example.com

Comodo LLC

中间证书1

Comodo LLC

COMODORSA DomainValidation SecureServerCA

中级证书2

COMODORSA DomainValidation SecureServerCA

COMODORSA AddTrustCA

根证书

COMODORSA AddTrustCA

AddTrust ExternalCARoot

生成的文件内容将类似于以下内容:

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建证书签名请求(CSR)
  • 您的证书颁发机构的根证书
    • CentOS
      • Debian或Ubuntu
      • 将您的CSR提交给您的证书颁发机构
      • 准备链式SSL证书
      相关产品与服务
      SSL 证书
      腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档