nginx配置ssl证书实现https访问

需求:网站之前是http协议的,老提醒不安全,老板让加个锁,第一次配https,中间遇到的测试配置文件中的坑记录下来

image-20210105145634819

常见错误:

  • [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf

    这是缺少http_ssl_module配置

img

  • Permission denied,这是没有启动权限,我们在命令前加上bash

当前环境:阿里云服务器、nginx

思路:阿里免费买一个 下载证书 放到服务器上(其他地方买证书也可以),然后配置nginx

1.阿里云购买免费凭证

image-20210105150239657

image-20210105150445670

image-20210105150818087

2.下载Nginx压缩包,得到key和pem文件,我把他放在服务器的新建的cert文件夹中,对应地址为:

/usr/local/nginx/conf/cert/文件名.pem; 
/usr/local/nginx/conf/cert/文件名.key; 

3.在修改配置文件nginx.conf之前,最好做一个备份,防止修改错误,也能及时回退错误,我的地址:

/usr/local/nginx/conf

image-20210105151638726

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
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值