linux 服务器上使用nginx 开启https

105 阅读2分钟

最近公司项目上刚好需要在nginx上配置ssl,在这里记录下如何配置https,ssl环境。

这里首先默认你是linux服务器centos,并且已经装好了nginx,这里就不再描述如何装nginx了。

  1. 首先在云上申请ssl证书【这里使用的是阿里云的免费证书(当然你也可以购买付费证书-更安全)】

1695823493169.png

  1. 申请后一年有20张免费证书可以创建 image.png

  2. 创建后就可以进行证书申请了,按上面要求填写要求即可 image.png

  3. 证书申请后你就可以拿到对应的,ssl公密钥文件xxx.pemxxx.key,将这两份文件放入服务器nignx文件夹 cert文件夹下,这里你可以通过xftp等文件传输软件向服务器传输资源。

  4. 这时我们就可以在 nginx.conf文件下进行配置,这里声明下我这nginx装在路径/usr/local/nginx/下

  5. 我们通过vim nginx.conf进行nginx.conf 文件编辑

#user  nobody;
#进程数设置最大可以为服务器cpu内核数量
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        listen [::]:80 default_server;
        server_name _;
        #访问地址重定向到https
        return 301 https://$host$request_uri;
    }

    # 开启https 服务
    server {
        listen       443 ssl;
        server_name  localhost;
        #声明证书pem文件位置
        ssl_certificate      cert.pem;
        #声明证书key文件位置
        ssl_certificate_key  cert.key;
        #设置证书缓存时效
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        #证书加密方案
        ssl_ciphers  HIGH:!aNULL:!MD5;
        #声明开启ssl证书加密
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

}

到此修改完成后重启nginx 即可,当然这里有一个注意项你服务器如果开启了防火墙一定要检查443端口是否有放过