如何在 Apache 上为 Debian 8 创建 SSL 证书如何在 Apache 上为 Debian 8 创建 SSL 证书如何在 Apache 上为 Debian 8 创建 SSL 证书如何在 Apache 上为 Debian 8 创建 SSL 证书
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Apache 上为 Debian 8 创建 SSL 证书

介绍

本教程将引导您完成使用 SSL 证书保护的 Apache 服务器的设置和配置。在本教程结束时,您将拥有一个可通过 HTTPS 访问的服务器。

SSL 基于将大整数解析为其同样大的质因数的数学难解性。使用它,我们可以使用私钥-公钥对来加密信息。证书颁发机构可以颁发 SSL 证书来验证此类安全连接的真实性,同时,可以在没有第三方支持的情况下生成自签名证书。

在本教程中,我们将生成自签名证书、进行必要的配置并测试结果。自签名证书非常适合测试,但会给您的用户带来浏览器错误,因此不建议将其用于生产。

如果您想获得付费证书,请参阅本教程。

先决条件

要学习本教程,您需要:

  • 一个新的 Debian 8 Droplet
  • 一个 sudo 非根用户,您可以按照本教程的第 2 步和第 3 步进行设置
  • 安装并更新了 OpenSSL(应默认安装)

  1. sudo apt-get update
  2. sudo apt-get upgrade openssl

出于测试目的,您可能需要安装了 OpenSSL 的第二台计算机:

  • 另一个 Linux Droplet
  • 或者,基于 Unix 的本地系统(Mac、Ubuntu、Debian 等)

第 1 步 — 安装 Apache

在此步骤中,我们将使用名为 apt-get 的内置软件包安装程序。它极大地简化了包管理并促进了全新安装。

在先决条件中指定的链接中,您应该已经更新了 apt-get 并安装了 sudo 包,因为与其他 Linux 发行版不同,Debian 8 没有随附 sudo 安装。

Apache 将是我们的 HTTPS 服务器。要安装它,请运行以下命令:

  1. sudo apt-get install apache2

第 2 步 — 启用 SSL 模块

在本节中,我们将在我们的服务器上启用 SSL。

首先,启用 Apache SSL 模块。

  1. sudo a2enmod ssl

默认的 Apache 网站带有一个用于启用 SSL 的有用模板,因此我们现在将激活默认网站。

  1. sudo a2ensite default-ssl

重新启动 Apache 以使这些更改生效。

  1. sudo service apache2 reload

第 3 步 — 创建自签名 SSL 证书

首先,让我们创建一个新目录,我们可以在其中存储私钥和证书。

  1. sudo mkdir /etc/apache2/ssl

接下来,我们将请求一个新证书并对其进行签名。

首先,生成一个新的证书和一个私钥来保护它。

  • days 标志指定证书应保持有效的时间。以本例为例,证书有效期为一年
  • keyout 标志指定了我们生成的密钥的路径
  • out 标志指定了我们生成的证书的路径

  1. sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

调用此命令将产生一系列提示。

  • 通用名称:指定服务器的 IP 地址或主机名。此字段很重要,因为您的证书需要与您网站的域(或 IP 地址)相匹配
  • 自行决定填写所有其他字段。

示例答案显示在下面的红色中。

Interactive
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) [AU]:US State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:NYC Organization Name (eg, company) [Internet Widgits Pty Ltd]:DigitalOcean Organizational Unit Name (eg, section) []:SSL Certificate Test Common Name (e.g. server FQDN or YOUR name) []:example.com Email Address []:test@example.com

设置文件权限以保护您的私钥和证书。

  1. sudo chmod 600 /etc/apache2/ssl/*

关于三位权限码的更多信息,请参见 Linux 权限教程。

您的证书和保护它的私钥现在可供 Apache 使用。

第 4 步 — 配置 Apache 以使用 SSL

在本节中,我们将配置默认的 Apache 虚拟主机以使用 SSL 密钥和证书。进行此更改后,我们的服务器将开始为默认站点提供 HTTPS 而不是 HTTP 请求。

使用 nano 或您喜欢的文本编辑器打开服务器配置文件。

  1. sudo nano /etc/apache2/sites-enabled/default-ssl.conf

找到以 开头的部分并进行以下更改。

  • 在 ServerAdmin 电子邮件行下方直接添加一行包含您的服务器名称的行。这可以是您的域名或 IP 地址:

ServerAdmin webmaster@localhost
ServerName example.com:443

  • 找到以下两行,并更新路径以匹配我们之前生成的证书和密钥的位置。如果您在别处购买了证书或生成了证书,请确保此处的路径与您的证书和密钥的实际位置相匹配:

 SSLCertificateFile /etc/apache2/ssl/apache.crt
 SSLCertificateKeyFile /etc/apache2/ssl/apache.key

完成这些更改后,检查您的虚拟主机配置文件是否与以下内容匹配。

<IfModule mod_ssl.c>
	<VirtualHost _default_:443>
		ServerAdmin webmaster@localhost
		ServerName example.com:443
		DocumentRoot /var/www/html
		
		. . .
		SSLEngine on
		
		. . .
		
		SSLCertificateFile /etc/apache2/ssl/apache.crt
		SSLCertificateKeyFile /etc/apache2/ssl/apache.key

保存并退出文件。

重新启动 Apache 以应用更改。

  1. sudo service apache2 reload

要了解有关一般配置 Apache 虚拟主机的更多信息,请参阅本文。

第 5 步 — 使用 SSL 测试 Apache

在本节中,我们将从命令行测试您的 SSL 连接。

您可以从 (1) 本地基于 Unix 的系统,(2) 另一个 Droplet,或 (3) 同一个 Droplet 中运行此测试。如果您从外部系统运行它,您将确认您的站点可以通过公共 Internet 访问。

通过 HTTPS 443 端口打开连接。

  1. openssl s_client -connect your_server_ip:443

滚动到输出的中间(在键之后),您应该找到以下内容:

Output
—- SSL handshake has read 3999 bytes and written 444 bytes —- . . . SSL-Session: . . .

当然,数字是可变的,但这是成功的。恭喜!

按 CTRL+C 退出。

您还可以在网络浏览器中访问您的站点,在 URL 中使用 HTTPS (https://example.com)。您的浏览器会警告您该证书是自签名的。您应该能够查看证书并确认详细信息与您在第 3 步中输入的内容相符。

结论

我们的教程到此结束,为您留下一个可用的 Apache 服务器,并使用 SSL 证书安全配置。有关使用 OpenSSL 的更多信息,请参阅 OpenSSL Essentials 一文。

©2015-2025 艾丽卡 support@alaica.com