在开发环境中,通常web服务是本地部署的,因此不需要考虑网页加密问题,只需要配置http协议即可。然而,在某些项目中,如调试第三方回调功能时,必须使用https回调地址,因此需要在本地配置https。

由于ssl证书是自己颁发的,因此浏览器会显示证书不受信任的警告。不过,可以在本地设置信任证书,从而忽略浏览器的警告,实现https访问。

1. openssl 生成证书

➜ conf.d git:(production) ✗ mkdir ssl

➜ ssl git:(production) ✗ cd ssl

➜ ssl git:(production) ✗ openssl genrsa -out server.key 1024

➜ ssl git:(production) ✗ openssl req -new -key server.key -out server.csr

➜ ssl git:(production) ✗ cp server.key server.key.org

➜ ssl git:(production) ✗ openssl rsa -in server.key.org -out server.key

➜ ssl git:(production) ✗ openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650

➜ ssl git:(production) ✗ ll

total 32

-rw-r--r-- 1 55haitao staff 753B Sep 2 15:04 server.crt

-rw-r--r-- 1 55haitao staff 603B Sep 2 15:03 server.csr

-rw-r--r-- 1 55haitao staff 887B Sep 2 15:04 server.key

-rw-r--r-- 1 55haitao staff 887B Sep 2 15:04 server.key.org

2. Nginx配置

server {

listen 443 ssl;

server_name genes.dev.com;

ssl_certificate /etc/nginx/conf.d/ssl/server.crt;

ssl_certificate_key /etc/nginx/conf.d/ssl/server.key;

root /var/www/ogenes/Genes-Admin/public;

index index.html index.php;

if (!-e $request_filename) {

rewrite ^(.*)$ /index.php?s=$1 last;

break;

}

include /etc/nginx/conf.d/fpm/php81-fpm;

}

server {

listen [::]:80;

listen 80;

server_name genes.dev.com;

# redirect http to https www

return 301 https://genes.dev.com$request_uri;

}

3. 重启Nginx, 然后访问

发现证书无效。

4. 信任证书

用safari浏览器打开, 查看此证书, 拖动证书到桌面, 双击打开。

添加到钥匙串,然后在钥匙串找到证书, 选择 始终信任。

5. 测试

在 Safari

​ 在 Chrome

​ 点击继续前往即可

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。