因爲這個項目中,所有的跳轉都是用了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啦