在 Ubuntu 上开始使用 Lets Encrypt SSL 证书在 Ubuntu 上开始使用 Lets Encrypt SSL 证书在 Ubuntu 上开始使用 Lets Encrypt SSL 证书在 Ubuntu 上开始使用 Lets Encrypt SSL 证书
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

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

在 Ubuntu 上开始使用 Lets Encrypt SSL 证书

在此页

  1. 创建网站
  2. 安装 Lets Encrypt 并生成您的第一个 SSL 证书

本教程将指导您完成使用 Lets Encrypt 认证的 SSL 网站的首次配置。 Lets Encrypt 是一个新的 SSL 机构,提供免费的 SSL 证书。我们将使用两个现有的教程(\“完美服务器 - Ubuntu 15.10 (Wily Werewolf) 与 Apache、PHP、MySQL、PureFTPD、BIND、Postfix、Dovecot 和 ISPConfig 3”)。

此处描述的设置与任何 Ubuntu LAMP 服务器兼容,因此您也可以将其用作基础设置。

本教程将向您展示如何在没有 ISPConfig 3 的服务器上设置 Lets Encrypt,因为将在下一个 ISPConfig 3 版本(3.1 版)中直接实现 Lets Encrypt 服务。因此,如果您打算使用 ISPConfig,请等待 3.1 版本和新教程。

创建网站

第一步st 是创建网站配置和目录并为其启用 SSL (Apache mod_ssl)。如果您对服务器上的一个网站使用默认配置,或者您计划使用多个虚拟主机来托管多个域,则由您决定。为了更可靠和可扩展地使用,我将从 Azure 为我的“实验室”域 isp1.cloudapp.net 创建虚拟主机配置。

在 Ubuntu 和 Debian 上,所有虚拟主机默认存储在 /etc/apache2/sites-available 目录中。运行以下命令以检索现有虚拟主机配置文件的列表。

ls -l /etc/apache2/sites-available/

我的输出如下所示:

:/home/falco# ls -l /etc/apache2/sites-available/
-rw-r--r-- 1 root root 1332 May 20 2015 000-default.conf
-rw-r--r-- 1 root root 6437 May 20 2015 default-ssl.conf

我们现在可以使用“默认”配置文件来克隆和编辑它,或者我们可以使用我们自己的配置。我更喜欢使用自己的配置,因为我多年来一直这样做,所以让我们通过创建文件来创建一个新的虚拟主机:

vi /etc/apache2/sites-available/isp1.cloudapp.net.conf

在此文件粘贴中,包含以下内容:

<VirtualHost *:80>
ServerName isp1.cloudapp.net
ServerAlias www.isp1.cloudapp.net
DocumentRoot /home/web/isp1.cloudapp.net/public_html

ErrorLog /home/web/isp1.cloudapp.net/log/habdak.eu_error_log
CustomLog /home/web/isp1.cloudapp.net/log/habdak.eu_access_log combined

ScriptAlias /cgi-bin/ /home/web/isp1.cloudapp.net/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5

<Directory /home/web/isp1.cloudapp.net/public_html >
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
Require all granted
AddType application/x-httpd-php .php
AddType application/json .json
</Directory>

<Directory /home/web/isp1.cloudapp.net/cgi-bin >
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
Require all granted
</Directory>

RemoveHandler .php
RemoveHandler .php5
php_admin_value engine Off
IPCCommTimeout 301
FcgidMaxRequestLen 1073741824
php_value memory_limit 128M
php_value suhosin.session.encrypt Off

SSLEngine on
SSLCertificateFile /home/web/isp1.cloudapp.net /ssl.cert
SSLCertificateKeyFile /home/web/isp1.cloudapp.net /ssl.key
SSLCACertificateFile /home/web/isp1.cloudapp.net /ssl.ca
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLProtocol All -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder On

</VirtualHost>

将出现的域名替换为您的域并保存文件。要激活配置,请运行:

a2ensite isp1.cloudapp.net.conf

现在重新创建网站的文件夹:

mkdir /home/web
mkdir /home/web/isp1.cloudapp.net
mkdir /home/web/isp1.cloudapp.net/public_html
mkdir /home/web/isp1.cloudapp.net/cgi-bin
mkdir /home/web/isp1.cloudapp.net/logs

重新启动 apache 以应用新配置:

sudo service apache2 restart

现在我们必须生成证书文件。

安装 Lets Encrypt 并生成您的第一个 SSL 证书

我更喜欢使用 root 登录进行管理,而不是在每个命令之前运行 sudo,所以让我们 su 到 root 用户:

sudo su

导航到您的根主目录:

cd ~root

安装 git 以获取 Lets Encrypt git 存储库文件:

apt-get install git

现在克隆 Lets Encrypt git 存储库:

git clone https://github.com/letsencrypt/letsencrypt.git letsencrypt

导航到新的 letsencrypt 文件夹:

cd letsencrypt

并请求您的 SSL 证书:

./letsencrypt-auto certonly --webroot -w /home/web/isp1.cloudapp.net/public_html -d isp1.cloudapp.net

如果您请求主域(1st 级别域又名 cloudapp.net)的证书,请使用 -d 参数两次。有和没有这样的 www 前缀:

 ./letsencrypt-auto certonly --webroot -w /home/web/cloudapp.net/public_html -d cloudapp.net -d www.cloudapp.net

如果您不这样做,证书将对使用 www 前缀打开您的网站的访问者无效。

您还可以将其他子域添加到一个证书。例如,如果您的子域 admin.cloudapp.net 匹配同一站点(服务器上的同一文件夹),您也应该将其添加到此证书中。遗憾的是,您不能将 (*.cloudapp.net) 之类的通配符与 lets encrypt 一起使用。

Lets Encrypt 将自动更新所有依赖项并指导您完成其设置。您需要做的就是等待提示窗口询问您的电子邮件地址。该地址仅用于恢复丢失的数据。

您的新密钥现在默认存储在 /etc/letsencrypt/ 中。我们将把它们链接到我们的网站目录,以便我们以后可以管理密钥。

ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/cert1.pem /home/web/isp1.cloudapp.net/ssl.cert
ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/chain1.pem /home/web/isp1.cloudapp.net/ssl.ca
ln -s /etc/letsencrypt/archive/isp1.cloudapp.net/privkey1.pem /home/web/isp1.cloudapp.net/ssl.key

现在您应该可以使用 SSL 访问您的网站了。 Lets Encrypt 将通过向您发送一封电子邮件到您在 Lets Encrypt 安装过程中提供的地址,自动及时通知您证书过期。

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