需求:网站之前是http协议的,老提醒不安全,老板让加个锁,第一次配https,中间遇到的测试配置文件中的坑记录下来
常见错误:
-
[emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf
这是缺少
http_ssl_module
配置
- Permission denied,这是没有启动权限,我们在命令前加上bash
当前环境:阿里云服务器、nginx
思路:阿里免费买一个 下载证书 放到服务器上(其他地方买证书也可以),然后配置nginx
![image-20210105150445670](https://i-blog.csdnimg.cn/blog_migrate/d3f7aa33eaffdf7206807bbd4c83bcfa.png)
2.下载Nginx压缩包,得到key和pem文件,我把他放在服务器的新建的cert文件夹中,对应地址为:
/usr/local/nginx/conf/cert/文件名.pem;
/usr/local/nginx/conf/cert/文件名.key;
3.在修改配置文件nginx.conf
之前,最好做一个备份,防止修改错误,也能及时回退错误,我的地址:
/usr/local/nginx/conf
3.找到第一个监听80端口的server:下面是我修改好的server
server {
listen 80;
server_name 需要访问的域名;
rewrite ^(.*) https://需要访问的域名 permanent; #这句是代表 把http的域名请求转成https
location / {
root html;
index index.html index.htm;
proxy_pass http://需要访问的域名; #因为这里还是80端口,所以保持http就可以了
}
}
4.第一个server修改好了之后。那么就需要开始配置第二个server。拉到文件的底部。看到有一个https类型的server,这是我们需要改的第二个server
这里除了HTTPS server这行之外,其他的 # 删除,启动https模块
# HTTPS server //这一行千万不要删 带着#号放这里
server {
listen 443 ssl;
server_name 需要访问的域名,这里也不用加https;
ssl on;
ssl_certificate /usr/local/nginx/cert/文件名.pem; #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写
ssl_certificate_key /usr/local/nginx/cert/文件名.key