如何在核心/非托管 CentOS 服务器上安装 SSL

[ad_1]

为什么我需要安装或重新安装我的 SSL 证书?

根据 Globalsign

证书颁发机构 (CA) 行业收到了与在 CA 证书中包含特定扩展(OCSP 签名扩展密钥使用)相关的合规性影响的警报,该扩展在某些情况下具有意外的合规性和安全性影响。 许多 GlobalSign 颁发 CA 已受到此问题的影响。 虽然没有发生密钥泄露或安全事件,但我们将根据 CA/B 论坛基线要求和 GlobalSign CPS 作为我们补救计划的一部分撤销这些颁发 CA。 吊销的中间证书可能会导致验证由这些中间证书签署的证书时出错。

GlobalSign.com

那么,这究竟是什么意思?

这意味着发现验证您的 SSL 证书的基础证书之一存在缺陷。 尽管没有发现任何安全问题,但 GlobalSign 选择撤销该基础证书作为预防措施,以确保不会受到任何妥协影响其客户。

你下一步怎么做?

GlobalSign 要求您在您的服务器上搜索任何 受影响的证书 并使用以下 GS 概述的步骤更换或重新签发它们。

重新颁发现有的 SSL 证书

Globalsign 已要求受此问题影响的客户采取以下步骤。
1. 在 GlobalSign 搜索受影响的证书
2. 重新颁发任何受影响的 SSL 证书
3. 安装新证书 (在此页面上选择服务器类型,例如, Apache、Nginx、IIS)

如果我需要新的 SSL 证书怎么办?

在这种情况下,w我们概述了安装新 SSL 证书所需的以下步骤。

获取新的 SSL 证书

为了创建新的 SSL 证书,我们必须遵循以下步骤。

1. 生成 CSR — 创建新的证书签名请求。

2. 购买证书 — 将 CSR 发送给 GlobalSign 并支付订单。 然后他们审查信息并提供签名证书。

3. 安装证书 — 然后我们在服务器上安装 SSL。 通常,这属于 Apache 配置。

下面,我们提供了更多细节来完成这两个任务 核心托管 CentOS 和非托管 CentOS 服务器

要获得新的 SSL 证书,您必须首先生成 CSR 或证书签名请求。 接下来,您必须向 GlobalSign 提交您的 CSR 以获取新的 SSL。 订购证书并完成审核过程后,您现在就可以安装证书了。 您可以随时通过您的 GlobalSign 证书中心 (GCC) 帐户获取您的证书副本。 它也会通过电子邮件发送给您。

注意:在安装 SSL 证书之前,您需要确保安装了 Globalsign 提供的另外两个证书。 这些额外的证书,可以下载 这里, 被称为中间证书并链接到 GlobalSign 的根证书。 需要这些中间证书以确保您客户的浏览器信任您正在安装的 SSL 证书。

生成 CSR 证书

我们首先使用此命令为您的 SSL 生成 CSR 以发送到 GlobalSign。

openssl req -new -newkey rsa:2048 -nodes -keyout /etc/ssl/private/mydomain.key -out /etc/ssl/private/mydomain.csr

(用您的域名替换“mydomain”)

系统将提示您回答一系列问题,如下所述。

  • 国家的名字这是您所在国家/地区的两个字母缩写。 例如,美国是美国,英国是 GB.
  • 州或省名称这是您的组织所在州的全名。 例如,这可能是“加利福尼亚”或“密歇根”。
  • 地区名称您的组织所在城市的名称。 示例可能包括“Lansing”或“Phoenix”。 不要在该字段中使用缩写。 例如,“圣。 Helena”应该是“Saint Helena”。
  • 机构名称您的组织的名称。 如果您是企业,使用时必须使用您的法定名称。 如果您以个人身份申请,请使用您的全名。
  • 组织单位名称 如果作为企业申请,您可以在此处输入您的“Doing Business As” (DBA) 名称。 或者,您可以在此处使用部门名称。 例如,“IT 部门”或“Web 管理”。
  • 通用名称您为其购买 SSL 证书的域名。 这必须是完全限定的域名 (FQDN)。 一个例子可能是 mydomain.com。
  • 电子邮件地址可用作您的域的联系人的电子邮件地址。 确保地址有效!
  • 挑战密码用于进一步保护您的证书的可选密码。 如果您选择使用此密码,请务必记住该密码。 它必须至少有四个字符长。 如果您愿意,可以跳过此步骤。
  • 可选的公司名称另一个可选步骤。 如果您愿意,请填写您的公司名称。 对于 Web SSL 证书,这不是必需的。

密钥和 CSR 文件

在当前目录中,您应该会看到两个新文件。

  • mydomain.csr
  • mydomain.key

.key 文件应该在您的服务器上保密。 .csr 文件是您的新证书签名请求。 此文件包含将发送到证书颁发机构的信息。 您可以使用“cat”命令检查 CSR 的内容。

cat mydomain.csr

-----BEGIN CERTIFICATE REQUEST-----
MIIC5jCCAc4CAQAwgaAxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdBcml6b25hMRAw
DgYDVQQHDAdQaG9lbml4MRswGQYDVQQKDBJNeSBBd2Vzb21lIENvbXBuYXkxFjAU
BgNVBAsMDUlUIERlcGFydG1lbnQxFTATBgNVBAMMDG15ZG9tYWluLmNvbTEhMB8G
CSqGSIb3DQEJARYSYWRtaW5AbXlkb21haW4uY29tMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAsNljF8u2vvTGiSyStD/+4eInQnWlB30o38hWnF+bi6ZS
MmraeigL/HrSoKfUtj/z96PVeK9CFo0AZ12Tq9lBzXtqxSjboIcvr9lZvrycrEYR
qsepF8M18YOjyBfDzXIY13o5Sjnd4e0H7gZCldxy930LjJ1JQC0o4XAbxHd8k7A3
976uh2r6MPdnnQ65UG2vKnMa1MGfT9XTD6dQjj3ZpTqbdG4TnOPFlG4TNXu2zSYl
CX7XHjBKbGx5r/ohQBcqAYFpAMs/7E+gSbkK4jv9Mr8W1gC0CHSJkpT0tqcn+8Lj
1vMi3ysDed6bObC/OMBXAZY2lpALbHvnzy2NJPRPjwIDAQABoAAwDQYJKoZIhvcN
AQELBQADggEBABuUSRgBnv4R1k4UHGngmvQ63jjaZhO6URhQbFzb1e+XHeqou1F8
YSP17A8w23hLfXxs/NCOhQzAn9cFbBGy6dajqMjsCF3timGXHitsmUyswpG3k+dI
bWIsRaJPMSOOz9HcI7ztvN1zs6iiMCZkpI4G+9J5wBqddgXSH+/w5bCViqj0855O
APFUYUEFSB5jS5/e132F5zhcZV5vQ2bato8Zy58gzz5t+q5rn6uuzqc05kmBtDG8
B12RlUt2lBbl6sxQDKQbsM6snwn50H3Xszgn8kyR1VuXOqaKf1X1cCKRTSzYztUp
FeKV0mMwoC9XxX6YCz8eQy66RMVSm3hGI2Y=
-----END CERTIFICATE REQUEST-----

订购新的 SSL 证书时,您需要将 CSR 文件的全部内容复制并粘贴到您的证书颁发机构。 确保包括读取的行

—–开始证书申请—–

—–结束证书申请—–

订购新的 SSL 证书

您现在可以从管理仪表板中订购新的 SSL。 选择添加,然后选择 SSL 证书。

接下来,选择手动选项并粘贴上面生成的 csr。

管理2ssl

最后,单击购买 SSL 证书按钮。

管理3ssl

安装 SSL 证书

要在证书到达时安装证书,请将证书复制到这些文件的典型位置 – 服务器上的 /etc/httpd/ssl 文件夹。 这包括您的服务器证书、私钥和中间证书。 您的服务器证书可以从发送电子邮件中获取。

接下来,打开你的 Apache 用于编辑的配置文件。 这通常位于以下位置之一

/etc/httpd/httpd.conf
或者
/etc/httpd/sites-enabled/name-of-virtualhost.conf

现在,配置您的虚拟主机以使用证书。 在 httpd.conf 文件中找到您站点的虚拟主机。 它应该类似于下面的示例。

<VirtualHost xxx.xxx.x.x:443>
    DocumentRoot /var/www/examplesite
    ServerName example.com www.example.com
    SSLEngine on
    SSLCertificateFile /path/to/examplesite.crt
    SSLCertificateKeyFile /path/to/privatekey.key
    SSLCertificateChainFile /path/to/intermediate.crt
</VirtualHost>

将以下指令指向位于 /etc/httpd/ssl 文件夹中的相应证书。

SSL证书文件 — 这应该指向您的服务器证书。
SSL证书密钥文件 — 这应该指向您服务器的私钥。
SSL证书链文件 — 这应该指向您产品的中间证书。

通过运行以下命令测试更新的配置。

[[email protected] ~]# apachectl configtest 

或者

[[email protected] ~]# apache2ctl configtest

这将检测您的配置中的任何错误,例如公钥和私钥不匹配或路径不正确。

最后重启 Apache

[[email protected] ~]# systemctl restart httpd.service

创建新的自签名 SSL 证书

要在 CentOS 上创建自签名 SSL 证书,请遵循以下命令。

首先让我们检查是否 Apache 启用了 SSL 模块。

 [[email protected] ~]# apachectl -M | grep ssl
 [[email protected] ~]#  

如果它没有安装这个模块,我们可以使用这个命令安装它。

[[email protected] ~]# yum -y install mod_ssl

接下来,我们重新启动 apache,以便服务器识别更改。

[[email protected] ~]# service httpd restart

在验证模块现在就位时,我们将重新运行该命令。

 [[email protected] ~]# apachectl -M | grep ssl
  ssl_module (shared) 

现在,我们将创建一个新文件夹来存储我们的私钥。

[[email protected] ~]# mkdir /etc/httpd/ssl

由于存储在此目录中的文件必须保密,因此我们修改文件夹权限以确保只有 root 用户具有访问权限。

[[email protected] ~]# chmod 700 /etc/ssl/private

创建 CSR

接下来,我们将使用 openssl 命令创建 SSL 密钥和证书文件。 创建新的 CSR 时,系统会提示您回答有关您正在创建的域的信息的一系列问题。 运行以下命令开始。

[[email protected] ~]# openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

Generating a RSA private key
.......................................+++++
...........................+++++
writing new private key to '/etc/httpd/ssl/apache.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:Michigan
Locality Name (eg, city) [Default City]:Lansing
Organization Name (eg, company) [Default Company Ltd]:Liquid Web Inc.
Organizational Unit Name (eg, section) []:Marketing
Common Name (eg, your name or your server's hostname) []:host2.g33k.fun
Email Address []:[email protected]
[[email protected] ~]# 

将自签名 SSL 证书添加到 Apache

接下来,我们将新证书位置添加到我们的 ssl.conf 文件以正确显示新 SSL。

vim /etc/httpd/conf.d/ssl.conf

找到标题为:“虚拟主机 _default_:443” 并在下一行添加以下虚拟主机配置。 (在我的服务器上,此部分从默认 ssl.conf 文件的第 40 行开始)

 <VirtualHost _default_:443>
 ServerName host2.g33k.fun:443 

-或者-

 <VirtualHost _default_:443>
 ServerName 64.92.237.88:443 

注意:域应与上述步骤中指定的“通用名称”相同。

现在,验证是否在同一文件中正确设置了以下变量:

SSLEngine on SSLCertificateFile /etc/httpd/ssl/apache.crt 
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

确保添加文件所在的文件位置。 然后退出并使用命令 :wq 保存文件。

接下来重启 Apache

 [[email protected] ~]# systemctl restart httpd.service
 [[email protected] ~]# 

最后,通过运行以下命令来测试更新的配置。

apachectl configtest 

或者

apache2ctl configtest

输出应类似于以下内容。

 . . .
 Syntax OK 

这将检测您的配置中的任何错误,例如公钥和私钥不匹配或路径不正确。

最后重启 Apache 再次。

[[email protected] ~]# systemctl restart httpd.service

测试

打开 Web 浏览器,然后使用 https:// 浏览到域名或 IP 以验证新证书是否处于活动状态。

https://example.com

您的 Web 浏览器很可能会显示一条警告,指出该网站的安全证书不受信任。 这是正常的,因为我们的证书不是由像 Thawte 或 GlobalSign 这样的已知 CA(证书颁发机构)签署的。 此警告仅表示无法验证您尝试连接的服务器的身份。 我们创建了一个自签名证书,而不是一个可信的 CA 签名证书,所以这是完全合理的。

一旦您为浏览器的身份验证添加了例外,您将被允许继续访问您的新安全站点。

结论

更换核心托管或非托管服务器上的 SSL 通常很耗时,并且会给已经很复杂的系统增加一层复杂性。 在处理当今具有安全意识的客户端时,SSL 是必不可少的。 证明您认真对待安全只会有助于提供更高级别的信任。

如果您对此信息有任何疑问,我们随时可以回答与本文相关问题的任何询问,一年 365 天,一周 7 天,一天 24 小时。

我们的支持团队由经验丰富的 Linux 技术人员和才华横溢的系统管理员组成,他们对多种网络托管技术(尤其是本文中讨论的技术)了如指掌。

如果您是完全托管的 VPS 服务器, Cloud 专用,VMWare 私有 Cloud, 私有父服务器, 托管 Cloud 服务器或专用服务器所有者,并且您对执行列出的任何步骤感到不舒服,可以通过电话联系我们 @800.580.4985,a 聊天 或支持票以协助您完成此过程。

[ad_2]

Related Posts