如何从商业证书颁发机构安装 SSL 证书(商业认证证书)

如何从商业证书颁发机构安装 SSL 证书前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
本教程将向您展示如何从受信任的商业证书颁发机构&

前几天,我发现了一个巨大的人工智能学习网站,简单易懂,幽默风趣。点击跳转至网站。

简介

本教程向您展示如何从受信任的商业证书颁发机构(CA) 获取并安装SSL 证书。 SSL 证书允许Web 服务器加密流量并提供验证服务器身份的机制。使用SSL 的网站是通过https://协议访问的。

直到2010 年代中期,许多小型网站不一定使用SSL 或HTTPS。从那时起,人们对安全的期望不断提高,Let’s Encrypt 项目应运而生,旨在大规模提供免费、可信的SSL 证书,使几乎任何人都可以按需使用HTTPS。

但是,Let’s Encrypt 证书有一些限制。它每三个月过期一次,因此通常需要自动更新脚本才能工作,但在无法执行此操作的环境中可能会变得很麻烦。 Let\’s Encrypt 还提供扩展验证证书,用于验证您网站的合法所有权,以及通配符证书,用于自动匹配您网站的所有子域(例如shop.example.com),无需手动注册。子域。

对于大多数用户来说,这些并不是重大限制。 Let’s Encrypt 是许多个人和商业网站的热门选择。但是,如果您有特定的企业软件要求或拥有非常大的商业运营,则应考虑从商业CA 购买证书。

本教程介绍如何从受信任的证书颁发机构选择和部署SSL 证书。拥有SSL 证书后,本教程将向您展示如何将其安装在Nginx 和Apache Web 服务器上。

先决条件

从商业CA 获取SSL 证书有几个先决条件。

已注册域名。本教程自始至终都使用example.com。您可以从Namecheap 购买域名,从Freenom 免费获取域名,或使用您选择的域名注册商。

访问您的域的WHOIS 记录中的电子邮件地址,或域本身的“管理员类型”电子邮件地址。颁发SSL 证书的证书颁发机构通常通过向域的WHOIS 记录中的地址或域自己的一般管理员电子邮件地址发送验证电子邮件来验证对域的控制。要获得扩展验证证书,您还需要向CA 提供专门证明网站所有者合法身份的文件。

为您的服务器设置DNS 记录。如果您使用的是DigitalOcean,请参阅DNS 文档以获取有关如何添加它的说明。

本教程提供配置已按照Ubuntu 22.04 初始服务器设置教程设置的Ubuntu 22.04 服务器的步骤,包括为非root 用户启用sudo 和防火墙。大多数现代Linux 版本的工作原理都类似。

您还需要按照《如何在 Ubuntu 22.04 上安装 Nginx》 或《如何在 Ubuntu 22.04 上安装 Apache Web 服务器》 安装Web 服务器,例如Nginx 或Apache。确保您已为您的域配置了服务器块(或Apache 虚拟主机)。

步骤 1 选择您的证书颁发机构

如果您不确定使用哪个证书颁发机构,则需要考虑几个因素。

根证书计划成员资格

最重要的考虑因素是您选择的CA 是否是最常见的操作系统和Web 浏览器根证书方案的成员。即该CA是否是“受信任”的CA及其根证书是否被流行的浏览器和其他软件所信任。如果网站的SSL 证书由受信任的CA 签名,则信任该CA 的软件会认为其身份有效。

大多数商业CA 都是公共根CA 计划的成员,但在购买证书之前进行检查是值得的。例如,Apple 发布了受信任的SSL 根证书列表。

证书类型

确保您选择的CA 提供您需要的证书类型。许多CA 提供这些证书类型的变体,具有不同的名称和定价结构。每种类型的简要描述如下:

单个域:对于单个域,例如example.com。请注意,不包括其他子域,例如www.example.com。 通配符:用于一个域及其子域。例如,*.example.com 的通配符证书也可用于www.example.com 和store.example.com。 多域:通配符证书也称为SAN 或UC 证书,可用于多个域。将子域和子域添加到主题备用名称字段。例如,单个多域证书可用于example.com、www.example.com 和example.net。

除了上面列出的证书类型之外,CA 还提供不同级别的验证。

域验证(DV):CA 在验证请求者拥有或控制相关域后颁发DV 证书。 组织验证(OV):只有在颁发CA验证了请求者的合法身份后,才能颁发OV证书。扩展验证(EV):OV证书只有在颁发CA验证了请求者的合法身份后才能颁发。 CA 在颁发EV 证书之前遵循严格的准则来验证请求者的合法身份和其他详细信息。此类证书的目的是为网站访问者提供有关组织身份合法性的额外保证。 EV证书可以是单域或多域,但不能是通配符证书

附加功能

许多CA 提供各种“额外”功能,以区别于其他SSL 证书颁发供应商。其中一些功能最终可以为您省钱,因此在购买之前权衡您的需求与所提供的功能非常重要。例如,值得注意的功能包括免费重新认证和针对域名基础名称(例如www.example.com 和包含example.com 的SAN)的单域价格证书。

步骤 2 生成 CSR 和私钥

准备好先决条件并确定所需的证书类型后,生成证书签名请求(CSR) 和私钥。

如果您计划使用Apache HTTP 或Nginx 作为Web 服务器,则可以使用openssl 命令在Web 服务器上生成私钥和CSR。本教程将所有相关文件保存在您的主目录中,但您可以随意将它们保存在服务器上的任何安全位置。

要生成名为example.com.key 的私钥和名为example.com.csr 的CSR,请运行以下命令(将example.com 替换为您的域名):

openssl req -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr

此时,系统会要求您输入几行信息以包含在您的证书请求中。最重要的部分是通用名称字段。该名称必须与您要使用证书的名称匹配(例如,example.com、www.example.com 或(对于通配符证书请求)*.example.com)。如果您计划获得OV 或EV 证书,请确保所有其他字段准确反映您的组织或企业详细信息。无需输入“挑战密码”。

例如:

国家/地区名称(2 个字母代码)[AU]:US

州名(全名)[Some-State]:New York

地区名称(例如城市)[]: New York

组织名称(例如公司)[Internet Widgits Pty Ltd]:我的公司

组织单位名称(例如部门)[]:

通用名称(例如服务器的FQDN 或您的姓名)[]:example.com

电子邮件地址[]:sammy@example.com

请输入以下“附加”属性

随证书请求一起发送

挑战密码[]:

任意公司名称[]:

这将生成.key 和.csr 文件。key 文件是您的私钥,必须安全保存。csr 文件是您发送给CA 以请求SSL 证书的文件。

示例.com*

example.com.csr example.com.key

向CA 提交证书请求时,您必须复制并粘贴CSR。使用cat 打印CSR 的内容。

catexample.com.csr

您现在已准备好从CA 购买证书。

步骤 3 购买和获取证书

有许多商业CA 提供商,您可以比较和对比最适合您独特设置的选项。例如,Namecheap 充当SSL 证书的经销商,并在过去更换了上游CA 提供商以提供最佳价值。我们目前提供Comodo CA 的证书。以下是截至2022 年12 月的内容示例:

!便宜的SSL产品名称

做出选择后,您需要上传在上一步中生成的CSR。您的CA 提供商还可能有一个“审批者”步骤,用于将验证请求电子邮件发送到您域的WHOIS 记录中的地址,或者发送到您获取证书的域的管理员类型地址。

证书获得批准后,将通过电子邮件发送给指定的管理员。复制这些并将它们保存在生成私钥和CSR 的同一位置。使用您的域名和.crt 扩展名命名证书,例如example.com.crt,并将中间证书命名为middle.crt。

您现在已准备好在Web 服务器上安装证书,但您可能需要先对防火墙进行一些更改。

步骤 4 更新防火墙以允许 HTTPS

如果您已按照Ubuntu 22.04 设置指南中的建议启用ufw 防火墙,则需要调整设置以允许HTTPS 流量。 Nginx 和Apache 在安装过程中都会向ufw 注册一些配置文件。

您可以通过输入以下命令来查看当前设置:

须藤ufw 状态

如果您收到仅包含Nginx HTTP 或Apache 的输出,则仅允许HTTP 流量访问您的Web 服务器。

状态: 已激活

行动发起人

————

任何地方都允许使用OpenSSH

Nginx HTTP 允许任何地方

OpenSSH (v6) 允许任何地方(v6)

Nginx HTTP (v6) 允许任何地方(v6)

要允许更多HTTPS 流量,请允许Nginx Full 或Apache Full 配置文件并删除多余的HTTP 配置文件权限。

sudo ufw 允许“Nginx full”

允许sudo ufw 删除\’Nginx HTTP\’

这给出了以下结果:

须藤ufw 状态

状态: 已激活

行动发起者

————

任何地方都允许使用OpenSSH

任何地方都允许Nginx Full

OpenSSH (v6) 允许任何地方(v6)

Nginx 完整(v6) 允许任何地方(v6)

最后一步是安装证书。

步骤 5 在服务器上安装证书

从所选CA 获得证书后,您需要将其安装在Web 服务器上。这涉及到将SSL 相关行添加到您的Web 服务器软件配置中。

本教程介绍了在Ubuntu 22.04 上配置Nginx 和Apache,但大多数现代Linux 发行版的工作原理类似。本教程还假设以下条件:

私钥、SSL 证书以及CA 的中间证书(如果适用)位于您的主目录/home/sammy。 私钥名称是example.com.key。 SSL 证书的名称是example.com.crt。 CA 的中间证书返回如下:该提供程序位于名为Intermediate .crt 文件的目录中。

Nginx

以下是将SSL 证书手动部署到Nginx 的步骤。

如果您的CA 仅返回中间证书,您必须创建一个包含您的证书和CA 的中间证书的“链接”证书文件。

假设您的证书文件名为example.com.crt,您可以使用cat 命令连接这些文件以创建名为example.com.chained.crt 的组合文件。

cat example.com.crt middle.crt example.com.chained.crt

使用nano 或您喜欢的文本编辑器打开并编辑默认的Nginx 服务器块文件。

sudo nano /etc/nginx/sites-enabled/default

找到listen指令并将其更改为监听443 ssl。

……

服务器{

443 监听SSL。

……

接下来,在同一服务器块中找到server_name 指令,并确保其值与证书的公用名称匹配。此外,添加ssl_certificate 和ssl_certificate_key 指令以指定证书和私钥文件的路径。

……

服务器名称example.com;

ssl_certificate /home/sammy/example.com.chained.crt;

ssl_certificate_key /home/sammy/example.com.key;

……

要仅允许最安全的SSL 协议和密码,请将以下行添加到文件中:

……

ssl_协议TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers 已打开。

ssl_ciphers \’EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH\’;

……

最后,要默认将HTTP 请求重定向到HTTPS,请在文件开头添加额外的服务器块。

服务器{

听80。

服务器名称example.com;

^/(.*) https://example.com/$1 永久重写。

}

……

保存并关闭文件。如果您使用的是nano,请按Ctrl+X,出现提示时按Y,然后按Enter。

在重新启动Nginx 之前,您可以使用nginx -t 检查您的配置。

须藤nginx -t

如果没有问题,请重新启动Nginx 以启用基于HTTPS 的SSL。

sudo systemctl 重新启动nginx

通过HTTPS 访问您的网站(例如https://example.com)进行测试。您还应该尝试通过HTTP 连接,例如http://example.com,以确保重定向正常工作。

Apache

请按照以下步骤在Apache 上手动部署SSL 证书。

使用nano 或您喜欢的文本编辑器打开并编辑默认的Apache 虚拟主机文件。

sudo nano /etc/apache2/sites-available/000-default.conf

找到VirtualHost *:80 条目并更改它,以便您的Web 服务器侦听端口443。

……

虚拟主机*:443

……

接下来,添加ServerName 指令(如果不存在)。

……

服务器名称example.com

……

然后添加以下行来指定证书和密钥路径:

……

SSLE 引擎已开启

SSL 证书文件/home/sammy/example.com.crt

SSLCertificateKeyFile /home/sammy/example.com.key

SSLCA 证书文件/home/sammy/intermediate.crt

……

此时,服务器配置为仅侦听HTTPS(端口443),因此不会处理HTTP(端口80)的请求。要将HTTP 请求重定向到HTTPS,请将以下行添加到文件顶部(替换两个位置中的名称):

虚拟主机*:80

服务器名称example.com

永久重定向到/https://example.com/

/虚拟主机

……

保存并关闭文件。如果您使用的是nano,请按Ctrl+X,出现提示时按Y,然后按Enter。

通过运行以下命令启用Apache SSL 模块:

须藤a2enmod ssl

现在重新启动Apache 以加载新配置并启用基于TLS/SSL 的HTTPS。

sudo systemctl 重新启动apache2

通过HTTPS 访问您的网站(例如https://example.com)进行测试。您还应该尝试通过HTTP 连接,例如http://example.com,以确保重定向正常工作。

结论

在本教程中,您学习了如何确定何时需要从商业CA 购买SSL 证书以及如何比较和对比可用的选项。您还了解了如何配置Nginx 或Apache 以支持HTTPS 以及如何调整生产环境的配置。

接下来,了解其他SSL 用例,例如使用负载均衡器时。

#以上关于如何安装商业证书颁发机构的SSL证书的相关内容仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91378.html

(0)
CSDN's avatarCSDN
上一篇 2024年6月22日 上午1:00
下一篇 2024年6月22日 上午1:36

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注