coleava / me

1 stars 0 forks source link

window10 nginx配置本地https #1

Open coleava opened 3 years ago

coleava commented 3 years ago

一、安装OpenSSL 1.下载地址 http://slproweb.com/products/Win32OpenSSL.html 选择32位或者64位的版本安装(可默认安装或者指定磁盘目录安装 )
我个人默认装在C:\Program Files\OpenSSL-Win64

2.配置环境变量 变量名:OPENSSL_HOME 变量值:C:\Program Files\OpenSSL-Win64\bin;(变量值为OPENSSL安装位置下的bin目录), 并在Path变量结尾添加一条: %OPENSSL_HOME%

二、安装Nginx 下载http://nginx.org/en/download.html 我下载的是1.17版本 解压安装 进到对应的目录下 找到nginx.exe 启动服务器 在地址栏输入http://localhost 看到nginx欢迎界面 即为安装成功

三、生成证书   1、首先在Nginx安装目录中创建ssl文件夹用于存放证书。比如我的文件目录为 D:\nginx-1.17.4\ssl

在控制台中执行: cd D:\nginx-1.17.4\ssl

2、创建私钥 在命令行中执行命令: openssl genrsa -des3 -out server.key 1024 # server文件名随便起即可 输入密码后,再次重复输入确认密码。记住此密码,后面会用到。

3、创建csr证书 在命令行中执行命令: openssl req -new -key server.key -out server.csr 其中key文件为刚才生成的文件。 执行上述命令后,需要输入一系列的信息。输入的信息中最重要的为Common Name,输入的域名即为我们要使用https访问的域名 ,比如我输入的是localhost。其它的内容随便填即可。 以上步骤完成后,ssl文件夹内出现两个文件:server.csr 和 server.key 4、去除密码。 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码。 复制server.key并重命名为server.key.org。 在命令行中执行如下命令以去除口令: openssl rsa -in server.key.org -out server.key 然后输入密码,这个密码就是上文中在创建私钥的时候输入的密码。

5、生成crt证书 在命令行中执行此命令: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 证书生成完毕 , ssl文件夹中一共生成了4个文件。配置https服务器的时候,需要用到的是其中的server.crt和server.key

附带nginx配置

http server

server { listen 80; server_name 192.168.50.93; rewrite ^ https://$http_host$request_uri? permanent; // 跳转到443 }

HTTPS server

server {
    listen       443 ssl;
    server_name  192.168.50.93;  //  即为本地localhost IP
    ssl_certificate      D://nginx-1.17.4//ssl//server.crt;  // 生成的crt证书所在的目录
    ssl_certificate_key  D://nginx-1.17.4//ssl//server.key;// 生成的key证书所在的目录

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
       root   E:/rtc/rtc/sealrtc-web/dist; // 前端打包文件
        index  index.html index.htm;
    }

 location /api/ { // 后端接口路径
       proxy_pass http://192.168.50.93:8585;  // 代理到后端访问地址
       proxy_read_timeout 300s;
       proxy_send_timeout 300s;

       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-Server $host;
}