nginx配置https ssl证书

参考配置: https://help.aliyun.com/document_detail/98728.html?spm=5176.b657008.0.0.5cde56a7q1iD5x

1.下载证书

在这里插入图片描述

2. 在nginx/conf目录新建cert目录,把两个证书文件放进去

cd /usr/local/nginx/conf  #进入Nginx默认安装目录。如果您修改过默认安装目录,请根据实际配置进行调整。
mkdir cert  #创建证书目录,命名为cert。

3. 修改nginx配置文件nginx.conf

vim /usr/local/nginx/conf/nginx.conf

进入编辑模式

  1. yourdomain.com:替换成证书绑定的域名。
    如果您购买的是单域名证书,需要修改为单域名(例如www.aliyun.com);如果您购买的是通配符域名证书,则需要修改为通配符域名(例如*.aliyun.com)[b2buat.trav*****ate.com]。
  2. cert-file-name.pem:替换成您在步骤3上传的证书文件的名称。
  3. cert-file-name.key:替换成您在步骤3上传的证书密钥文件的名称。
#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    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; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        root html;  #站点目录。
        index index.html index.htm;
    }
}

http强跳转https

server {
    listen 80;
    server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        index index.html index.htm;
    }
}

4. 重启nginx

cd /usr/local/nginx/sbin  #进入Nginx服务的可执行目录。
./nginx -s reload  #重新载入配置文件。

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

5.会发现启动会报错, Nginx的SSL模块没有开启

切换到源码包:

cd /usr/local/nginx/nginx-1.15.8

nginx配置https ssl证书_第1张图片
查看nginx原有的模块

/usr/local/nginx/sbin/nginx -V

在configure arguments:后面显示的原有的configure参数如下:

--prefix=/usr/local/nginx --with-http_stub_status_module

那么我们的新配置信息就应该这样写:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

运行上面的命令即可,等配置完
配置完成后,运行命令

make

这里不要进行make install,否则就是覆盖安装
然后备份原有已安装好的nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)

cp ./objs/nginx /usr/local/nginx/sbin/

然后启动nginx,仍可以通过命令查看是否已经加入成功

/usr/local/nginx/sbin/nginx -V 

在这里插入图片描述
重启nginx即可

6. 还有报错

nginx: [emerg] "root" directive is duplicate in /etc/nginx/server/blogs.conf:7

错误原因是:在配置文件时,访问路径设置了两个,重复配置webroot路径导致,去掉一个就可以了。

nginx配置https ssl证书_第2张图片

你可能感兴趣的:(nginx,nginx,ssl)