如何在nginx上为Ubuntu 12.04创建SSL证书

本教程介绍如何创建自签名SSL证书,如何将其添加到服务器,以及如何配置SSL文件以将证书显示给全世界。 SSL证书是一种加密网站信息并创建更多s的方法

关于自签名证书

SSL证书是加密网站信息并创建更安全连接的一种方式。 此外,证书可以向站点访问者显示虚拟私人erver的识别信息。 证书颁发机构可以颁发SSL证书来验证服务器的详细信息,而自签名证书没有第三方佐证。

建立

本教程中的步骤要求用户具有root权限。 你可以看到如何设置了在初始服务器设置教程第3步和4。

此外,您需要在您的VPS上安装并运行nginx。 如果不是这样,您可以使用此命令下载:

sudo apt-get install nginx

第一步 - 创建证书的目录

SSL证书有2个主要部分:证书本身和公钥。 为了使所有相关文件容易访问,我们应该创建一个目录来存储它们:

 sudo mkdir /etc/nginx/ssl

我们将在目录中执行以下几个步骤:

 cd /etc/nginx/ssl

第二步:创建服务器密钥和证书签名请求

首先创建私有服务器密钥。 在此过程中,您将被要求输入特定的密码。 一定要仔细地注意这个短语,如果你忘记它或失去它,你将无法访问证书。

sudo openssl genrsa -des3 -out server.key 2048

后续操作是创建证书签名请求:

sudo openssl req -new -key server.key -out server.csr

此命令将提示终端显示需要填写的字段列表。

最重要的一行是“Common Name”。 在这里输入您的官方网域名称,如果您还没有,请输入您网站的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

您现在已完成证书。

第五步 - 设置证书

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

让我们创建具有与标准虚拟主机文件相同的默认文本和布局的新文件。 您可以使用您喜欢的任何名称替换命令中的“example”:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example

然后继续打开这个新文件:

 sudo nano /etc/nginx/sites-available/example

向下滚动到文件的底部,找到以此开头的部分:

# HTTPS server

server {
        listen 443;
        server_name example.com;

        root /usr/share/nginx/www;
        index index.html index.htm;

        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key; 
}

在HTTPS服务器下的部分下取消注释。 将您的配置与上面的信息匹配,将“server_name”行中的example.com替换为您的域名或IP地址。 随后,为您的网站添加正确的目录(上述配置包括默认的nginx页面)。

另外,请确保这两行都被注释掉在文件开头的行中:

# Make site accessible from http://localhost/
# server_name localhost;

第六步 - 激活虚拟主机

最后一步是通过在sites-available目录和sites-enabled目录之间创建符号链接来激活主机。

 sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example

然后重新启动nginx:

 sudo service nginx restart

访问https:// youraddress

您将在该网页上看到您的自签名证书!

查看更多

一旦你在网站上已经安装到SSL证书后,就可以安装FTP服务器 ,如果你还没有这样做呢。

资源

作者Etel Sverdlov