[翻译]How To Create an SSL Certificate on Apache for CentOS 7

Introduction

在本指南中,我们将向您展示如何设置自签名 SSL 证书,以便在 CentOS 7 VPS 上与 Apache Web 服务器配合使用。自签名证书不会验证您的服务器的身份,因为它不是由受信任的证书颁发机构签名的,但它将允许您加密服务器和访问者之间的通信。

Step One — Install Mod SSL

安装 Apache SSL 支持模块:mod_ssl

sudo yum install mod_ssl

重启 Apache 后就能使用 SSL 证书。

Step Two — Create a New Certificate

现在 Apache 能够使用加密了,接着生成一个新的 SSL 证书。证书包含了一些你网站的基础信息,同时有一个 key file 使得服务器能够安全的处理加密后的数据。

首先我们新建一个用于保存,server key 和证书的目录:

sudo mkdir /etc/httpd/ssl

接着用 openssl 创建 SSL key 和证书文件:

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

敲完回车后,你就能输入网站的提示选项了。在这之前,让我们具体看一下上面的指令:

  • openssl:基本命令,用于创建和管理 OpenSSL 证书、key 和其他文件。
  • -reg -x509:指定使用 X.509 certificate signing request (CSR) 管理。"X.509" 是 SSL 和 TLS 遵守的用于密钥和证书管理的公钥基础标准。
  • -nodes:告诉 OpenSSL 跳过使用密码保护证书的选项。我们需要 Apache 在服务启动时能够直接读取文件,不用用户介入。使用密码会使得每次重启后都需要输入密码。
  • -days 365:设置证书有效的时间长度。 我们在这里设置了一年。
  • -newkey rsa:2048:指定同时生成新的证书和新的密钥。 在上一步中我们没有创建签署证书所需的密钥,因此我们需要与证书一起创建。"rsa:2048" 指定生成一个2048位长的RSA密钥。
  • -keyout:告诉 OpenSSL 将生成的 private key 文件保存在哪里。
  • -out:告诉 OpenSSL 将生成的证书保存在哪里。

适当填写提示选项。最重要的一项是填写 Common Name。填写需要的域名,没有域名的话可以填写 IP 地址。

全部选项如下:

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Example
Locality Name (eg, city) [Default City]:Example 
Organization Name (eg, company) [Default Company Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Example Dept
Common Name (eg, your name or your server's hostname) []:example.com
Email Address []:webmaster@example.com

Step Three — Set Up the Certificate

现在我们拥有了完成接口所需的组件。接下来要做的是设置虚拟主机以显示新证书。

用 root 权限打开 Apache SSL 的配置文件:

sudo nano /etc/httpd/conf.d/ssl.conf

找到 <VirtualHost _default_:443>,然后改点东西。

首先,取消 DocumentRoot 行的注释,将地址编辑为带引号的网站根目录路径。默认为 /var/www/html

DocumentRoot "/var/www/example.com/public_html"

接着,取消 ServerName 行的注释,填写域名或者 IP(刚才在 OpenSSL 中配置的):

ServerName www.example.com:443

找到 SSLCertificateFileSSLCertificateKeyFile,把路径改为刚才我们创建的文件路径 /etc/httpd/ssl

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

保存并退出配置文件。

Step Four — Activate the Certificate

重启 Apache 使刚才配置的内容生效:

sudo apachectl restart

尝试用 https:// 访问你的域名或者 IP:

https://example.com/

你的浏览器很有可能会警告你,访问的网站的安全证书是不可信的。由于你的证书并没有在浏览器信任的证书认证机构中注册,浏览器无法验证正在访问的服务器的身份。我们仅创建了 self-signed(自签名)证书而不是受信任的 CA 签名证书,所以才会发生这样的现象。

在浏览器的身份验证添加例外后,你就可以继续访问你新的安全网站了。

Conclusion

如果你计划在公开的网站上使用SSL,则应该从可信的证书颁发机构购买 SSL 证书,以防止向每个访问者显示可怕的警告信息。

引用

digitalocean

标签: CentOS, Apache, SSL

已有 5 条评论

  1. buy accutane online reviews Cialis 5mg Tablets Australia where to buy cialis online safely Acheter Du Cialis En Ligne Forum Viagra Definizione Amoxicilina Amk Medicine

  2. Buy Tamoxifen For Men How Do Guys Last Longer cialis price Sildenafil Viagra Acquista Levitra 10 Mg Kosten Viagra Krankenkasse

  3. Suisse Acheter Kamagra order on line levitra For sale shipped ups isotretinoin acne discount medicine

  4. Propecia Rezeptfrei Osterreich Buy Cheap Doxycycline In Usa Chaque Cachet Jaune Contient Soit 10mg online pharmacy Buy now isotretinoin

  5. Next Day Metronidazole Or Flagyl Buying Progesterone No Prescription Can Amoxicillin Be Used For Acne cialis from canada Achat Cialis Securise Achat Viagra Livraison Rapide

添加新评论