Nginx服务器安装SSL证书

前言

本来自己部署的几个站点都是使用http协议,用的好好的,就省去了https还需要安装ssl证书的步骤。但是在使用hexo的时候,我的个人博客是强制使用https访问的,hexo文章引用的外链图片如果是http协议,那么就会无法加载,当然也有解决办法,就是将网站改为http访问就可以了,毫无疑问这种解决方式并不优雅。如今http2已经被广泛使用,浏览器也默认使用https协议,我也决定将自己的几个站点升级为https

申请SSL证书

因为本人是在aliyun注册的域名,所以就在aliyun免费申请SSL证书,免费证书有效期是1年,证书到期前,需要重新申请新的证书,其他平台也支持免费申请SSL证书,申请方法参考,这里就不赘述了哈

安装SSL证书

下载SSL证书

将需要安装的证书下载解压,里面包含.key私钥文件和.pem证书文件,也可以重命名文件方便区分他们是哪个域名的证书

image

拷贝SSL证书

将私钥文件和证书文件拷贝到nginx配置文件所在的目录下,linux可以使用ftp工具或者scp命令来拷贝文件,这里不再赘述啦,我的配置文件所在的目录是/etc/nginx,所以我放到了/etc/nginx/cert中,如果没有cert这个文件夹可以自己创建,也可以自己命名。

这里的路径仅供参考,请将文件放到自己nginx的实际配置路径下,如果不知道可以使用命令nginx -h查看

image

配置Nginx

接下来就是修改配置文件nginx.conf,下面是我的nginx配置文件的部分内容,请根据自己实际情况修改,修改后使用命令nginx -t查看配置文件是否有误,确认无误后使用nginx -s reload重新加载一下就可以了

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;


    # default
    server {
        listen  80;
        server_name  chdxia.com;
 
        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
    }


    # jenkins
    server {
        # 监听端口
    	listen       443 ssl;
        # 监听域名
    	server_name  jenkins.chdxia.com;

    	# 证书文件路径
        ssl_certificate      cert/jenkins.chdxia.com.pem;
        # 私钥文件路径
    	ssl_certificate_key  cert/jenkins.chdxia.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

    	# 加密套件
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        # 反向代理
    	location / {
            proxy_pass         http://ip:port;
            proxy_redirect     default;
            proxy_read_timeout 90;

            proxy_set_header   Host              $host;
            proxy_set_header   X-Real-IP         $remote_addr;
            proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Proto $scheme;
        }
    }

    # http重定向到https
  	server {
        listen       80;
        server_name  jenkins.chdxia.com;
        return       https://jenkins.chdxia.com;
    }


    # lrtest
    server {
        # 监听端口
    	listen       443 ssl;
        # 监听域名
    	server_name  lrtest.chdxia.com;

        # 证书文件路径
    		ssl_certificate      cert/lrtest.chdxia.com.pem;
        # 私钥文件路径
    	ssl_certificate_key  cert/lrtest.chdxia.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        # 加密套件
    	ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        # 前端静态web页面
    	location / {
            root   lrtest-web/dist;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        # 后端api反向代理
    	location /api/v1 {
            proxy_pass         http://ip:port;
            proxy_redirect     default;
            proxy_read_timeout 90;

            proxy_set_header   Host              $host;
            proxy_set_header   X-Real-IP         $remote_addr;
            proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Proto $scheme;
        }
    }

    # http重定向到https
  	server {
        listen       80;
        server_name  lrtest.chdxia.com;
        return       https://lrtest.chdxia.com;
    }
}

本文作者:chdxia

本文链接:https://www.cnblogs.com/chdxia/p/16523346.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   chdxia  阅读(530)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起