mac nginx配置HTTPS

因爲這個項目中,所有的跳轉都是用了laravel的 secure_url 函數來跳轉,這個函數就是爲應用程序生成一個HTTPS url。

 

但是我的MAC就沒有配置到HTTPS祕鑰,所以點擊時候,是這樣的

 

 

所以現在需要在我的NGINX中,配置https

第一步  生成私鑰

 

openssl genrsa -des3 -out private.key 2048

第二步  生成證書請求

 

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

第三步 生成服務器的私鑰

 

openssl rsa -in private.key -out server.key

第四步 使用私鑰爲證書請求籤名,生成給服務器簽署的證書,格式是x509的PEM格式

 

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

 

此時會生成以下三個文件,再去nginx 配置文件中,監聽https

 

 

 

 

監聽HTTPS請求

添加

 # ssl配置
    ssl on;
    ssl_certificate /usr/local/etc/nginx/server.crt;
    ssl_certificate_key /usr/local/etc/nginx/server.key;

 

具體如下:

server {
    listen 80;  # http端口監聽

    server_name www.test.com;
    index index.html index.htm index.php;

    # ssl配置
    ssl on;
    ssl_certificate /usr/local/etc/nginx/server.crt;
    ssl_certificate_key /usr/local/etc/nginx/server.key;

    location / {
        rewrite . /index.php last;
    }
}

ngnix -s reload 重啓的時候,這樣的配置,遇到了一個問題

nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /usr/local/etc/nginx/servers/moremkt:12

解決:

該問題是由於新版nginx採用新的方式進行監聽https請求了

把 ssl on; 去掉

替換成 listen 443 ssl; 就可以了

下面是最終的配置文件

server {
    #    ssl on;
    listen 443 ssl; #監聽HTTPS
    listen 80; #監聽HTTP
    server_name www.more.mkt.net;

    #charset koi8-r;

    #access_log  /usr/local/var/log/nginx/access.log  main;

#    root /usr/local/var/www/more_mkt/public;
    root /Users/mkc/Documents/www/more_mkt/public;


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

    location / {
        index index.html index.htm index.php;
         try_files $uri $uri/ /index.php$is_args$args;
    }

    #error_page 404 /404.html;
    #error_page 502 /502.html;
    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass   127.0.0.1:9003;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

     #error_page  404              /404.html;

     # redirect server error pages to the static page /50x.html

     #error_page   500 502 503 504  /50x.html;
     #location = /50x.html {
     #   root   html;
     #}

    location ~ .*\.(html|htm|css|js|png|ico|woff2|woff|ttf|swf)$ {
        root /Users/mkc/Documents/www/more_pc/public;
    }

    #deny access to .htaccess files, if Apache's document root
    #concurs with nginx's one
    #
    location ~ /\.ht {
        deny  all;
    }
}

 

然後就可以請求https啦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章