首先安装nginx

nginx安装

Nginx 的 SSL 模块安装

1、查看 nginx是否安装 http_ssl_module 模块

nginx -V

nginx SSL配置项 nginx ssl module_nginx

如果出现 configure arguments: –with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 SSL 证书部署、nginx.conf 配置)。

否则按下述执行命令。

2、进入nginx源码包,重新执行下面命令,重新编译安装三部曲

nginx SSL配置项 nginx ssl module_ssl_02

./configure --with-http_ssl_module
make 
make install

3、上述命令执行完以后,继续执行nginx -V

nginx SSL配置项 nginx ssl module_html_03

nginx SSL模块安装成功!

SSL 证书部署

1、首先需要购买一个域名,可以直接去阿里云购买,购买完后域名备案(域名购买备案自行百度)。

nginx SSL配置项 nginx ssl module_nginx_04

我直接使用我之前购买备案过的域名,域名解析,点击解析按钮。

nginx SSL配置项 nginx ssl module_https_05

进入界面,点击添加记录。

nginx SSL配置项 nginx ssl module_nginx_06

配置解析记录:

nginx SSL配置项 nginx ssl module_nginx SSL配置项_07

这里配置泛解析域名,主机记录填*,保证后缀为.likelong.icu的域名都能访问到配置的主机IP,比如www.likelong.icu、xxo.likelong.icu等。

nginx SSL配置项 nginx ssl module_https_08

域名解析完成!

2、申请阿里云的免费SSL证书,期限为1年

nginx SSL配置项 nginx ssl module_html_09

进入阿里云控制台,搜索SSL,点击下面应用。

nginx SSL配置项 nginx ssl module_html_10

填写信息,购买免费证书。

nginx SSL配置项 nginx ssl module_https_11

购买完后,证书申请。

nginx SSL配置项 nginx ssl module_nginx_12

填写验证信息,绑定我们刚解析的域名www.likelong.icu

nginx SSL配置项 nginx ssl module_nginx_13

点击验证。

nginx SSL配置项 nginx ssl module_nginx SSL配置项_14

证书签发后,点击下载。

nginx SSL配置项 nginx ssl module_ssl_15

选择nginx下载。

nginx SSL配置项 nginx ssl module_html_16

下载zip包里有两个文件,下面nginx配置需要用到。

nginx SSL配置项 nginx ssl module_https_17

直接将上述两个文件上传至nginx中conf文件夹如下。

nginx SSL配置项 nginx ssl module_html_18

nginx证书配置

nginx.conf添加如下配置:

server {
	listen               443 ssl;
	server_name          localhost;  # 接收所有访问443端口的请求
	ssl_certificate      8355107_www.likelong.icu.pem;
	ssl_certificate_key  8355107_www.likelong.icu.key;
}

nginx SSL配置项 nginx ssl module_https_19

修改完后,重启nginx。nginx -s reload

nginx SSL配置项 nginx ssl module_html_20

访问我们之前配置的域名www.likelong.icu,可以看到现在它是不安全的。

nginx SSL配置项 nginx ssl module_ssl_21

访问安全的域名https://www.likelong.icu,可以看到现在就是安全的。

nginx SSL配置项 nginx ssl module_https_22

至此nginx https配置完成!


由于http协议默认的端口是80,而https默认的端口是443,如果想让http的访问跳转到https的访问,可以做如下配置:

server {

	listen 80;
	server_name www.likelong.icu likelong.icu; # 换成自己的域名

	# 重定向,会显示跳转的地址server_name,如果访问的地址没有匹配会默认使用第一个,即www.likeong.icu
	return 301 https://$server_name$request_uri;	

}

配置如下:

nginx SSL配置项 nginx ssl module_nginx SSL配置项_23

server {
	 listen               443 ssl;
	 server_name          localhost;  # 接收所有访问443端口的请求
	 ssl_certificate      8355107_www.likelong.icu.pem;
	 ssl_certificate_key  8355107_www.likelong.icu.key;

         # 配置根目录以及默认页面
         location / {
            root   html;
            index  index.html index.htm;
        }

        # 配置默认错误页面
        error_page   500 502 503 504  /50x.html;
        # /50x.html文件所在位置
        location = /50x.html {
            root   html;
        }
   }

    server {
        listen       80;
        server_name www.likelong.icu likelong.icu; # 换成自己的域名

		# 重定向,会显示跳转的地址server_name,如果访问的地址没有匹配会默认使用第一个,即www.likeong.icu
        return 301 https://$server_name$request_uri;
    }

配置修改后,重启nginx。

直接访问www.likelong.icu,会跳转至安全访问地址。

nginx SSL配置项 nginx ssl module_nginx SSL配置项_24

至此,此篇结束!