Linux下nginx配置SSL证书实现https

385 字
2 分钟
Linux下nginx配置SSL证书实现https

1.前提#

  • 先准备SSL证书 途径很多 收费的免费的

2.安装nginx 需要ssl模块#

  • 安装全新的nginx

  • 之前已经安装了nginx,但是没有ssl模块

    • 查看之前的nginx有没有安装ssl模块(http_ssl_module)

      Terminal window
      /opt/nginx/sbin/nginx -V
    • 如果没有安装 用源码重新编译一个新的nginx 其它配置要和你之前编译的一样 避免出现一些问题

      Terminal window
      # 加入http_ssl_module
      --with-http_ssl_module
      # 重新make
      #注意这里只能用make 千万不要用make install,因为执行make install是覆盖安装的意思
    • 将编译完的nginx文件替换之前的nginx文件 注意备份之前的nginx文件 别直接覆盖

3.上传证书到服务器nginx目录下#

  • 创建ssl文件夹和密码文件(ssl.pass文件的作用:不用每次reload或者启动都要手动输入密码)

    Terminal window
    mkdir -p /opt/nginx/ssl
    cd /opt/nginx/ssl
    touch ssl.pass
    #将证书密码写入ssl.pass文件 注意首尾空格和换行
  • 上传证书到ssl文件夹

    域名.crt文件

    域名.key文件

4.配置nginx配置文件 以9090为例#

  • 先配置http
Terminal window
server {
listen 9090;
server_name xxx.com;
location / {
proxy_connect_timeout 60;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
  • 再配置https

    Terminal window
    # HTTPS server
    server {
    listen 443 ssl;
    server_name xxx.com;
    ssl_certificate /opt/nginx/ssl/xxx.com.crt;
    ssl_certificate_key /opt/nginx/ssl/xxx.com.key;
    ssl_session_cache shared:SSL:1m;
    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;
    ssl_password_file /opt/nginx/ssl/ssl.pass;
    location / {
    proxy_connect_timeout 45;
    proxy_send_timeout 45;
    proxy_read_timeout 45;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:9090;
    }
    }

5.测试配置的正确性#

Terminal window
/opt/nginx/sbin/nginx -t

6.重新加载配置文件#

Terminal window
/opt/nginx/sbin/nginx -s reload

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Linux下nginx配置SSL证书实现https
https://tianch.com.cn/posts/tutorials/linux-xia-nginx-pei-zhi-ssl-zheng-shu-shi-xian-https/
作者
田小晖
发布于
2020-05-30
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
田小晖
记录技术成长,分享运维与开发经验。
公告
分类
标签
站点统计
文章
134
分类
9
标签
29
总字数
203,962
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.15.6
文章许可
CC BY-NC-SA 4.0