姜维博客
欢迎来访~

创建自签名免费SSL证书到Nginx

 

本文介绍了通过openssl命令生成自签名SSL证书的过程。

证书签名的 SSL 证书就是未经过权威第三方认证的 SSL 证书,常常用作测试 https 连接或者局域网内部访问之用。当用户访问使用这种 SSL 证书的网站时,往往会被提示“该网站的 SSL 证书未被认证!”。

创建自签名 SSL 证书

创建自签名的 SSL 证书需要用到 openssl,在 Windows,Mac OS X,以及 Linux 平台上都可以安装使用 openssl,在这里以 Linux 系统为例,一般来说 openssl 被默认安装在各大 Linux 发行版当中。

首先,确认系统中安装了 openssl:

如果系统中已经安装了 openssl,当执行这条命令后,终端会返回一条 openssl 命令的路径,如果提示未安装,可以使用系统中安装的包管理软件来安装。对于 Ubuntu 系统:

接下来,我们先生成一个名为“ssl.key”的 RSA key文件:

执行完这两条命令后,当前目录下应该新增了两个文件:ssl.pass.key 和 ssl.key,ssl.pass.key 是为了生成 ssl.key 产生的中间文件,此时已经不再被需要,可以删除:

接着,利用已经生成的 ssl.key 文件,进一步生成 ssl.csr 文件:

执行此行命令会提示输入密码,按回车即可,因为前面我们在生成 ssl.key 时选择了密码留空。

最后我们利用前面生成的 ssl.key 和 ssl.csr 文件来生成 ssl.crt 文件,也就是自签名的 SSL 证书文件:

这一步之后,我们得到一个自签名的 SSL 证书文件 ssl.crt,有效期为 365 天。此时,ssl.csr 文件也已经不再被需要,可以删除掉了:

部署自签名的 SSL 证书到 Nginx

在这里我们仍然假设 Nginx 服务器运行在 Linux 系统之上。我们在/usr/local/nginx 目录下 (根据自己nginx安装路径) 创建 ssl 文件夹用以保存相关 SSL 证书文件:

通过ftp、scp或者本地cp等方法将我们生成的 ssl.key 和 ssl.crt 文件上传到/usr/local/nginx/ssl目录下。

修改对应 Nginx 中网站的配置文件,如下:

其中第四行 return 301 https://$server\_name$request\_uri; 是将所有指向该网站的 http 链接自动重定向到 https 链接,从而避免了 404 错误。

配置文件修改完毕后,重启 Nginx 服务:

此时,直接使用 https 协议访问你的网站时会提示“网站证书不被信任”错误。

 
 
-The End-
 
可附来源转载:姜维博客 » 创建自签名免费SSL证书到Nginx

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    SSL一直没有用,本来网站打开就不快,总感觉会延迟我的加载速度多说要更换了

    苏格1年前 (2017-04-29)回复

待添加阿里云优惠