余子越的博客
Toggle navigation
余子越的博客
主页
计算机网络
大数据分析
系统与工具
编程之路
容器引擎
作者
归档
标签
局域网内将nginx配置https访问
2020-11-04 09:14:52
117
0
0
yuziyue
> letsencrypt 的使用场景通常是有外网的时候,如果安装的nginx不能访问外网,同时也不能被外网访问,只能在内网发布,这时候letsencrypt就无法安装了,使用openssl手动生成证书可以解决此问题。 - 安装nginx ``` # 安装nginx apt install nginx vim /etc/nginx/conf.d/test.conf server { listen 80; server_name www.test.com; root /var/www/html; index index.html client_max_body_size 1g; } echo ok > /var/www/html/index.html # 重启 nginx 后确保能通过浏览器正常访问,并返回ok sudo systemctl restart nginx ``` <br> - 创建证书 ``` # 使用openssl交互式方式创建证书 openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout www.test.com.key -out www.test.com.crt # 除了如下要写配置的域名外,其他的都直接回车 Common Name (e.g. server FQDN or YOUR name) []:www.test.com # 拷贝到nginx配置目录 cp www.test.com.crt /etc/nginx/ cp www.test.com.key /etc/nginx/ ``` <br> - nginx配置证书 ``` vim /etc/nginx/conf.d/test.conf server { listen 443 ssl; server_name www.test.com; root /var/www/html; index index.html; ssl_certificate /etc/nginx/www.test.com.crt; ssl_certificate_key /etc/nginx/www.test.com.key; } // http 重定向到 https server { listen 80; server_name www.test.com; if ($host = www.test.com) { return 301 https://$host$request_uri; } return 404; } # 禁止 http://IP 访问 server { listen 80 default_server; server_name _; return 403; } # 禁止 https://IP 访问 server { listen 443 ssl default_server; server_name _; ssl_certificate /etc/nginx/www.test.com.crt; ssl_certificate_key /etc/nginx/www.test.com.key; return 403; } # 重启nginx systemctl restart nginx ``` <br> - 浏览器配置证书 - mac: 将`/etc/nginx/www.test.com.crt`下载到mac上,双击该文件安装证书,并配置全部信任(在钥匙串配置) - windows: 不需要配置 - macOS 解决 `Chrome NET::ERR_CERT_INVALID`的问题 在较新的 Chrome 版本中,访问不受信任的 HTTPS 网站时,会提示如下的提示,并且点击高级按钮也没有继续前往的链接。 提供一个简便的方法: 随便点击页面的空白处,然后输入:`thisisunsafe` 页面就可以打开了,很神奇。 <br><br><br>
上一篇:
Kafka集群部署
下一篇:
Maven使用场景总结
0
赞
117 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
文档导航