Nginx 配置https认证

本文主要讲述如何配置本地Nginx开发环境,重点讲述其对https支持的配置。

1. 安装

通过之前的文档(1.Mac环境Nginx的搭建以及使用.docx)我们肯定已经顺利的完成了Nginx在Mac环境上的搭。

Nginx基本命令

nginx -s stop       # 快速关闭

nginx -s quit       # 关闭

nginx -s reload    # 重新加载配置文件

nginx -s reopen    # 重新打开log

 

2. 配置 && 启动

安装好了以后,nginx服务默认已经启动,然而我们并不知道服务的端口、位置。

全局搜索配置文件:

sudo find / -name nginx.conf

发现位于如下位置:

/usr/local/etc/nginx/nginx.conf

打开,进行编辑

修改了http下面的server项。将root修改为绝对路径/www/,并注意到,server监听的端口为80。

server {
        listen       80;
        server_name  localhost;
    
        location / {
            root   /www/;;
            index  index.html index.htm;
        }

此时创建目录/www/,将其所有者修改为当前用户(可选),并在该目录下添加index.html文件,添加少许内容,打开http://localhost:80即可浏览

cd /    # 进入根目录
sudo mkdir www    #创建www目录
sudo chown [user-name] /www/    #将www目录所有者更改为当前用户
cd /www    #进入www目录
touch index.html    #创建index.html
echo ABCD > index.html    #在index.html中输入ABCD

运行结果如下:

 

nginx的认证功能 鸡肋 nginx官方认证_mac

此时,我们已经成功的启动了一个nginx静态服务器。可以在其目录下添加任何内容,并在本地8080端口访问。

3. 证书及https配置

通过上一篇文档(.jks文件转换成ctr,key文件) 我们可以使用其中的两份文件。

然后修改nginx.conf文件中HTTPS server 一段如下:

# HTTPS server
    #
    server {
        listen       443 ssl;

注意需要修改域名

# ssl_certificate      cert.pem;
        # ssl_certificate_key  cert.key;
        ssl_certificate      server.crt;
        ssl_certificate_key  server.key;
 
        # ssl_session_cache    shared:SSL:1m;
        # ssl_session_timeout  5m;
 
        # ssl_ciphers  HIGH:!aNULL:!MD5;
        # ssl_prefer_server_ciphers  on;
 
        location / {
            root   /www/;
            index  index.html index.htm;
        }
    }

重启Nginx

nginx -s reload

如果遇到如下错误,请使用sudo重启Nginx。

nginx: [emerg] bind() to 0.0.0.0:443 failed (13: Permission denied)

于此同时,因为我们的证书需要以 *.ch.com 的域名,所以我们也要修改hosts文件的内容,加入如下内容:

127.0.0.1 myspring.ch.com

此时可以通过https://myspring.ch.com/访问,效果如下:

nginx的认证功能 鸡肋 nginx官方认证_mac_02