OpenSSL在Apache和Dovecot下的使用(一)

作者 : 开心源码 本文共4738个字,预计阅读时间需要12分钟 发布时间: 2022-05-12 共234人阅读

OpenSSL在Apache和Dovecot下的使用(一)

在这有两部分的系列中,Carla Schroder 会向你展现如何创立自己的 OpenSSL 证书以及如何配置 Apache 和 Dovecot 来使用它们。 — CARLA SCHRODER

本文导航

  • -创立你的证书 …… 13%

  • -配置 Apache …… 44%

  • -测试 Apache SSL …… 54%

  • -创立一个证书签名请求 …… 74%

  • -额外的教程 …… 84%

编译自: https://www.linux.com/learn/sysadmin/openssl-apache-and-dovecot

作者: CARLA SCHRODER

译者: geekpi

这么长时间之后,我的读者们,这里是我给你们承诺的在 Apache 中使用 OpenSSL 的方法,下周你会看到在 Dovecot 中使用 SSL。 在这个分为两部分的系列中,我们将学习如何创立自己的 OpenSSL 证书,以及如何配置 Apache 和 Dovecot 来使用它们。

这些例子基于这些教程:

  • 给初学者看的在 Ubuntu Linux 上使用 Apache[1]

  • 给初学者看的在 Ubuntu Linux 上使用 Apache:第 2 部分[2]

  • 给初学者看的在 CentOS Linux 上使用 Apache[3]

创立你的证书

Debian/Ubuntu/Mint 会在 /etc/ssl 中存储私钥和证书的符号链接。系统自带的证书保存在 /usr/share/ca-certificates 中。你安装或者创立的证书在 /usr/local/share/ca-certificates/ 中。

这个例子是对 Debian 而言。创立私钥和公用证书,将证书转换为正确的格式,并将其符号链接到正确的目录:

$ sudo openssl req -x509 -days 365 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/test-com.key -out /usr/local/share/ca-certificates/test-com.crt

Generating a 2048 bit RSA private key

…….+++

………………………………..+++

writing new private key to '/etc/ssl/private/test-com.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) [AU]:US

State or Province Name (full name) [Some-State]:WA

Locality Name (eg, city) []:Seattle

Organization Name (eg, company) [Internet Widgits Pty Ltd]:Alrac Writing Sweatshop

Organizational Unit Name (eg, section) []:home dungeon

Common Name (e.g. server FQDN or YOUR name) []:www.test.com

Email Address []:admin@test.com

$ sudo update-ca-certificates

Updating certificates in /etc/ssl/certs…

1 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d…

Adding debian:test-com.pem

done.

done.

CentOS/Fedora 使用不同的文件结构,并不使用 update-ca-certificates,使用这个命令:

$ sudo openssl req -x509 -days 365 -nodes -newkey rsa:2048 -keyout /etc/httpd/ssl/test-com.key -out /etc/httpd/ssl/test-com.crt

最重要的条目是 Common Name,它必需与你的完全限定域名(FQDN)完全匹配。此外其它信息都是任意的。-nodes 用于创立一个无密码的证书,这是 Apache 所必须的。-days 用于定义过期日期。升级证书是一个麻烦的事情,但这样应该能够额外提供少量安全保障。参见 90 天证书有效期的利弊[4]中的探讨。

配置 Apache

现在配置 Apache 以使用你的新证书。假如你遵循给初学者看的在 Ubuntu Linux 上使用 Apache:第 2 部分[5],你所要做的就是修改虚拟主机配置中的 SSLCertificateFile 和 SSLCertificateKeyFile,以指向你的新私钥和公共证书。来自该教程中的 test.com 示例现在看起来像这样:

SSLCertificateFile /etc/ssl/certs/test-com.pem

SSLCertificateKeyFile /etc/ssl/private/test-com.key

CentOS 客户,请参阅在 CentOS wiki 中的在 CentOS 上设置 SSL 加密的 Web 服务器[6]一文。过程是相似的,wiki 会告诉如何解决 SELinux。

测试 Apache SSL

一个简单的方法是用你的网络浏览器访问 https://yoursite.com,看看它能否可以正常工作。在第一次这样做时,你会在你过度保护的 web 浏览器中看到可怕的警告说网站是不安全的,由于它使用的是自签名证书。请忽略你这个敏感的浏览器,并单击屏幕创立永久性例外。 假如你遵循在给初学者看的在 Ubuntu Linux 上使用 Apache:第 2 部分[7]上的示例虚拟主机配置,那么即便你的网站访问者尝试使用纯 HTTP,你的网站的所有流量都将强制通过 HTTPS。

一个很好测试方法是使用 OpenSSL。是的,有一个漂亮的命令来测试这些东西。试下这个:

$ openssl s_client -connect www.test.com:443

CONNECTED(00000003)

depth=0 C = US, ST = WA, L = Seattle, O = Alrac Writing Sweatshop,

OU = home dungeon, CN = www.test.com, emailAddress = admin@test.com

verify return:1

Certificate chain

0 s:/C=US/ST=WA/L=Seattle/O=Alrac Writing Sweatshop/OU=home

dungeon/CN=www.test.com/emailAddress=admin@test.com

i:/C=US/ST=WA/L=Seattle/O=Alrac Writing Sweatshop/OU=home

dungeon/CN=www.test.com/emailAddress=admin@test.com

Server certificate

—–BEGIN CERTIFICATE—–

[…]

这里输出了大量的信息。这里有很多关于 openssl s_client 的有趣信息; 现在足够我们知道我们的 web 服务器能否使用了正确的 SSL 证书。

创立一个证书签名请求

假如你决定使用第三方证书颁发机构(CA),那么就必需创立证书签名请求(CSR)。你将它发送给你的新 CA,他们将签订并将其发送给您。他们可能对创立你的 CSR 有自己的要求; 这是如何创立一个新的私钥和 CSR 的典型示例:

$ openssl req -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

你也可以从一个已经存在的 key 中创立一个 CSR:

$ openssl req -key yourdomain.key -new -out domain.csr

今天就是这样了。下周我们将学习如何正确地在 Dovecot 中设置 OpenSSL[8]。

额外的教程

  • 消灭让人害怕的 web 浏览器 SSL 警告[9]

  • 如何在 Linux 上使用 OpenVPN 设置安全远程网络:第一部分[10]

  • 如何在 Linux 上使用 OpenVPN 设置安全远程网络:第一部分[11]

提高你的系统管理职业生涯吧!查看Linux基金会的系统管理的要点[12]课程。


via: https://www.linux.com/learn/sysadmin/openssl-apache-and-dovecot

作者:CARLA SCHRODER[13] 译者:geekpi 校正:wxy

本文由 LCTT[14] 原创编译,Linux中国 荣誉推出

[1]: https://www.linux.com/learn/apache-ubuntu-linux-beginners

[2]: https://www.linux.com/learn/apache-ubuntu-linux-beginners-part-2

[3]: https://www.linux.com/learn/apache-centos-linux-beginners

[4]: https://community.letsencrypt.org/t/pros-and-cons-of-90-day-certificate-lifetimes/4621

[5]: https://www.linux.com/learn/apache-ubuntu-linux-beginners-part-2

[6]: https://wiki.centos.org/HowTos/Https

[7]: https://www.linux.com/learn/apache-ubuntu-linux-beginners-part-2

[8]: https://www.linux.com/learn/intro-to-linux/openssl-apache-and-dovecot-part-2

[9]: https://www.linux.com/learn/quieting-scary-web-browser-ssl-alerts

[10]: https://www.linux.com/learn/how-set-secure-remote-networking-openvpn-linux-part-1

[11]: https://www.linux.com/learn/how-set-secure-remote-networking-openvpn-linux-part-2

[12]: https://training.linuxfoundation.org/linux-courses/system-administration-training/essentials-of-system-administration

[13]: https://www.linux.com/users/cschroder

[14]: https://github.com/LCTT/TranslateProject

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » OpenSSL在Apache和Dovecot下的使用(一)

发表回复