centos8 nginx 开启 ssl(https)- 阿里云申请 SSL 证书
域名开启 ssl(https)证书,以阿里云为例。
centos8 nginx 开启 ssl(https)
一直没有给域名开启 https,在 Cesium 沙盒模拟中使用 http 资源会提示错误,于是想着把 https 打开,记录一下过程。
尤其是 阿里云的坑 和过程问题。
首先申请证书,以阿里云为例
1. 登陆阿里云,进入工作台,点击左上角,选择域名。
2. 点击域名列表进入域名页面
3. 选择要操作的域名,点击管理
4. 在基本信息选项卡下,点击右侧开启SSL证书
5. 注意:阿里云会诱导你购买证书,千万不要上当,别理就好。
点击左侧选项卡-SSL证书
6. 注意:这里阿里云还是诱导花钱,不用理。
点击免费证书选项卡
7. 注意:免费证书是真的免费,只是显示需要购买,点击立即购买(这里阿里云是让你误以为要花钱,从而想跳转到其他页面;实际花费为 0)
8. 选择已创建的证书,点击证书申请
9. 这里主要填写域名和其他信息
10. 验证,提交审核,大概一分钟即可审核完成
11. 审核通过,点击下载
13. 选择合适证书下载,本文以 nginx 为例
PS:阿里云为了让人花钱真是费尽心机,笔者也差点上当!!!
centos8 nginx 安装 ssl
进入 nginx 安装目录,依次执行:
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
make install
nginx 配置文件
增加 nginx 配置文件:
# 添加https server
server {
# 监听443端口,开始 ssl
listen 443 ssl;
# 域名
server_name www.openlayers.vip openlayers.vip;
# 证书路径
ssl_certificate /usr/local/nginx/conf/8953644_www.openlayers.vip.pem; # 这个目录需要替换成你自己证书的存放目录
ssl_certificate_key /usr/local/nginx/conf/8953644_www.openlayers.vip.key; # 这个目录需要替换成你自己证书的存放目录
#SSL-END SSL相关配置
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#下面这些配置跟原本http的server里面的一样就可以了
location / {
}
}
使用 curl 测试:curl https://openlayers.vip/,返回信息即可,如:
遇到问题
1. 首先是 nginx 缺少 SSL 模块错误
上来就配置 nginx,结果报错,提示很明显,就是没安装 SSL 模块,完整错误:
nginx报错:nginx: [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /project/api/nginx.conf:
解决方式:安装即可。
2. 安装 SSL 后 Gzip 模块被清除
由于已经安装配置 gzip,这里不知道为何,会覆盖掉,只有安装 ssl,gzip 就会被删掉,安装 gzip,ssl 也会被删掉。
错误信息:unknown directive “gzip_static“
解决办法,同时安装两个模块:
./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --with-http_ssl_module
3. nginx 未重启导致443端口不生效
PS: 443端口,使用 nginx -s reload 是不生效的,需要重启 nginx。
这个问题浪费不少时间,各种搜索无果,后台偶然发现一博客说是没重启 nginx 的原因,尝试之后,果然如此!
4. 443 端口未开启防火墙
在试错过程中,发现 curl 443 一直不通,以为是 443 端口没有开启防火墙,通过命令开启 443 端口。
firewall-cmd --permanent --list-port
firewall-cmd --zone=public --add-port=443/tcp --permanent
5. 防火墙未开启
但是在使用 firewall-cmd 命令的时候提示错误:FirewallD is not running。
也就是未开启防火墙,打开即可:
systemctl start firewalld # 开启防火墙
systemctl stop firewalld # 关闭防火墙
systemctl status firewalld # 查看防火墙状态
6. 缺少 six.py 错误
在打开防火墙的时候,遇到错误:No module named 'six'
参考博客:
Linux 命令详解(三)./configure、make、make install 命令
Nginx gzip压缩扩展模块 ngx_http_gunzip_module ngx_http_gzip_static_module
Centos8 firewall-cmd命令报错
linux出现 FirewallD is not running
nginx报错:nginx: emerg the “ssl“ parameter requires ngx_http_ssl_module in /project/api/nginx.conf:
unknown directive “gzip_static“ 解决
困扰我两天的问题(nginx配置好ssl证书,https却不能访问)
nginx 怎么都启动不了443端口的奇怪现象
Nginx挂载ssl证书开启HTTPS访问网站
Centos8 firewall-cmd命令报错
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)