如何在CentOS6的nginx上创建SSL证书
状态: 已弃用
本文介绍了不再受支持的 CentOS 版本。 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。
原因: CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) and no longer receives security patches or updates. For this reason, this guide is no longer maintained.
请参阅:
本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您正在使用的 CentOS 版本编写的指南。
以下 DigitalOcean 教程可能很有趣,因为它概述了如何在 CentOS 7 服务器上为 Nginx 创建 SSL 证书:
关于自签名证书
SSL 证书是一种加密站点信息并创建更安全连接的方法。 此外,证书可以向站点访问者显示虚拟专用服务器的标识信息。 证书颁发机构可以颁发 SSL 证书来验证服务器的详细信息,而自签名证书没有第 3 方证实。
介绍
确保 nginx 已安装在您的 VPS 上。 如果不是,您可以通过 2 个步骤快速安装它。
安装 EPEL 存储库:
su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm'
安装 nginx
yum install nginx
第一步——为证书创建一个目录
SSL 证书有 2 个主要部分:证书本身和公钥。 为了使所有相关文件易于访问,我们应该创建一个目录来存储它们:
sudo mkdir /etc/nginx/ssl
我们将在目录中执行接下来的几个步骤:
cd /etc/nginx/ssl
第二步——创建服务器密钥和证书签名请求
首先创建私有服务器密钥。 在此过程中,系统会要求您输入特定的密码。 请务必仔细记下这句话,如果忘记或丢失,您将无法访问证书。
sudo openssl genrsa -des3 -out server.key 1024
通过创建证书签名请求进行跟进:
sudo openssl req -new -key server.key -out server.csr
该命令将提示终端显示需要填写的字段列表。
最重要的一行是“通用名称”。 在此处输入您的官方域名,或者,如果您还没有,请输入您网站的 IP 地址。 将质询密码和可选的公司名称留空。
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]:Awesome Inc Organizational Unit Name (eg, section) []:Dept of Merriment Common Name (e.g. server FQDN or YOUR name) []:example.com Email Address []:webmaster@awesomeinc.com
第三步——删除密码
我们几乎完成了证书的创建。 但是,我们可以删除密码。 尽管设置密码确实提供了更高的安全性,但当尝试重新加载 nginx 时,问题就开始了。 如果 nginx 崩溃或需要重新启动,您将始终需要重新输入密码才能让整个 Web 服务器重新上线。
使用此命令删除密码:
sudo cp server.key server.key.org sudo openssl rsa -in server.key.org -out server.key
第四步——签署你的 SSL 证书
您的证书几乎完成了,您只需要签名即可。 请记住,您可以通过将 365 更改为您喜欢的天数来指定证书的有效期。 就目前而言,该证书将在一年后到期。
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
你现在已经完成了你的证书。
第五步——设置证书
打开 SSL 配置文件:
vi /etc/nginx/conf.d/ssl.conf
在 HTTPS 服务器行下的部分中取消注释。 将您的配置与以下信息相匹配,将“server_name”行中的 example.com 替换为您的域名或 IP 地址。 如果您只是想测试您的证书,那么默认的根目录将起作用。
# HTTPS server server { listen 443; server_name example.com; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; }
然后重启nginx:
/etc/init.d/nginx restart
您将在该页面上看到您的自签名证书!