Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac开发环境nginx配置ssl支持https协议 #1

Open
Zijue opened this issue Oct 31, 2020 · 1 comment
Open

Mac开发环境nginx配置ssl支持https协议 #1

Zijue opened this issue Oct 31, 2020 · 1 comment
Labels
https mac MacOS development environment settings nginx

Comments

@Zijue
Copy link
Owner

Zijue commented Oct 31, 2020

一、生成私钥(server.key)和 crt 证书(server.crt)

使用 homebrew 安装的 nginx 默认配置文件 nginx.conf 所在目录为/usr/local/etc/nginx

创建存放 SSL 证书相关文件目录

cd /usr/local/etc/nginx
mkdir ssl
cd ssl
  • 生成 server.key
openssl genrsa -des3 -out server.key 2048

以上命令是基于 des3 算法生成的 rsa 私钥,在生成私钥时必须输入至少 4 位的密码

  • 生成无密码的 server.key
openssl rsa -in server.key -out server.key
  • 生成 CA 的 crt
openssl req -new -x509 -key server.key -out ca.crt -days 3650 
  • 基于 ca.crt 生成 csr
openssl req -new -key server.key -out server.csr

命令的执行过程中依次输入国家、省份、城市、公司、部门及邮箱等信息

  • 生成 crt(已认证)
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

二、配置 nginx 支持 https 协议

  • 编辑 nginx.conf 文件,修改 server 配置
server {
        listen       80;
        server_name  localhost;

        listen       443 ssl;
        ssl_certificate             /usr/local/etc/nginx/ssl/server.crt;
        ssl_certificate_key         /usr/local/etc/nginx/ssl/server.key;
        
        ......

}
  • 重启 nginx
sudo nginx -s reload

三、Mac 配置 ip 域名映射

修改 /etc/hosts 文件,实现映射

vim /etc/hosts

# 添加本地 https 测试域名 ip 映射
127.0.0.1 localdomain.test

此时访问 https://localdomain.test/,提示无法访问。Chrome 也没有“忽略证书继续前往”的选项,需要我们在系统上添加自签名证书到系统并修改为始终信任

四、设置 Mac 信任自签名证书

  • 在浏览器的地址栏,点击不安全的图标,再点击 证书(无效) 进入证书详情
  • 在证书详情对话框中,那个证书的图标是可以拖动的,按住拖动任意文件夹中,会自动保存为一个 *.cer 文件
  • 双击 *.cer 文件,会出来一个安装对话框,选择安装到 “系统” 钥匙串
  • 安装完成后,在系统自带的“钥匙串访问”应用中,找到我们刚安装好的证书,双击它,进入设置详情,把“信任”一栏,全部改为“始终信任”后关闭对话框
  • 刷新浏览器,即可正常访问。Chrome 浏览器中,还需要点击一下“忽略证书继续前往”的选项

拓展:不信任网页暴力解决方法

直接在页面输入 thisisunsafe 即可继续访问

@Zijue Zijue added the mac MacOS development environment settings label Oct 31, 2020
@bestdqf
Copy link

bestdqf commented Nov 9, 2023

非常清晰

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
https mac MacOS development environment settings nginx
Projects
None yet
Development

No branches or pull requests

2 participants