mac 安装nginx并配置SSL实现Https访问

2020-03-02  本文已影响0人  Crassus

一、安装

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install nginx 安装nginx
nginx -v 显示版本号

找到Nginx文件夹

cd /usr/local/etc/nginx

启动nginx

sudo nginx 
or 
nginx

关闭nginx

sudo nginx -s stop

重启nginx

sudo nginx -s reload

检查nginx配置

nginx -t nginx.conf
or
sudo nginx -t nginx.conf

查日志

cd /usr/local/var/log/nginx
tail -f access.log
tail -f error.log

如果没有此两项文件需要自行创建在目录下:
/usr/local/Cellar/nginx/1.17.8/logs 同时在nginx.conf打开这一行

error_log  logs/error.log;

二、配置

1、找到Nginx文件夹

cd /usr/local/etc/nginx

2、openssl生成自签名证书

创建服务器私钥,命令会让你输入一个口令

openssl genrsa -out server.key 1024

根据私钥生成证书申请,创建签名请求的证书(CSR)

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

下面的选项至少写一个,才可以生成证书成功, 切记不需要输入口令

Country Name (2 letter code) []:ch
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:
Email Address []:

在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:

$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key

最后标记证书使用上述私钥和CSR

openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650

4、配置nginx:修改/usr/local/etc/nginx/nginx.conf 文件

location / {

root  html(当前静态文件的路径);

index  index.html index.htm;

}

不过最好不要把配置写到/usr/local/etc/nginx/servers目录里面,创建xxxx.conf
配置如下:

server {
        listen       443 ssl;
        server_name  static.millet.com;
         #server.crt和server.key都在nginx下面
        ssl_certificate      server.crt;
        ssl_certificate_key  server.key;

        location / {
            root   xxxxxxx;
            index  index.html index.htm;
        }
    }

修改host映射地址

127.0.0.1 xxx.com

启动nginx

sudo nginx

或者

sudo brew services start nginx

停止nginx

sudo nginx -s stop

或者

sudo brew services stop nginx

重新加载配置文件

sudo nginx -s reload

或者

sudo brew services restart nginx

安装常见问题:
安装Nginx输入命令brew install nginx报错

You have not agreed to the Xcode license. Please resolve this by running:

sudo xcodebuild -license

nginx设置本地跨域

在mac 终端运行命令的时候会被提示没有同意xcode 证书 ,这个时候需要在Terminal中同意license

此时 输入命令 sudo xcodebuild -license 空格到最后 输入agree 就可以了

5、强制信任证书,将server.crt文件拖到[钥匙串访问]中,并强制信任此证书,最后去打开你的定义的域名的地址

image.png

参考作者

作者:milletmi
链接:https://www.jianshu.com/p/fc1e81efc867
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上一篇下一篇

猜你喜欢

热点阅读