当前位置:   article > 正文

在Nginx服务器如何安装SSL证书_nginx配置ssl证书

nginx配置ssl证书

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:我用的是阿里云的产品,就以阿里云进行的:

Nginx安装步骤:安装详细步骤

一、下载SSL证书

进入数字证书管理服务/SSL 证书 /免费证书 点击下载
在这里插入图片描述
服务器类型选择Nginx 点击下载
在这里插入图片描述

二、安装SSL证书

将下载好的证书压缩包进行解压:会有下图两个文件
在这里插入图片描述
将证书文件和私钥文件上传到Nginx服务器的证书目录(/usr/local/nginx/conf/cert)

在这里插入图片描述
编辑Nginx配置文件nginx.conf,修改与证书相关的配置

vim /usr/local/nginx/conf/nginx.conf
  • 1

按i键进入编辑模式
在nginx.conf中找到到server属性配置,把前面#删除
修改内容如下:

server {
     #HTTPS的默认访问端口443。
     #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
     listen 443 ssl;
     
     #填写证书绑定的域名
     server_name <yourdomain>;
 
     #填写证书文件名称
     ssl_certificate cert/<cert-file-name>.pem;
     #填写证书私钥文件名称
     ssl_certificate_key cert/<cert-file-name>.key;
 
     ssl_session_cache shared:SSL:1m;
     ssl_session_timeout 5m;
 
     #默认加密套件
     ssl_ciphers HIGH:!aNULL:!MD5;
	 
     #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
     #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
     #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
     #ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

     #表示优先使用服务端加密套件。默认开启
     ssl_prefer_server_ciphers on;
 
 
    location / {
           root html;
           index index.html index.htm;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

配置HTTP请求自动跳转HTTPS

server {
    listen 80;
    #填写证书绑定的域名
    server_name <yourdomain>;
    #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    rewrite ^(.*)$ https://$host$1;
    location / {
        index index.html index.htm;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

然后重启Nginx服务器就可以了

重启如果出现错误:

nginx: [emerg] cannot load certificate "/usr/local/nginx/conf/cert/www.xxx.zxxx.key": PEM_read_bio_
  • 1

缺少http_ssl_module 模块
解决办法:
进入到nginx的源码安装包的config,注意不是/usr/local/nginx,是带有版本号的

具体的步骤:
1 查看版本

[root@xxxxx sbin]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.19.9
built by gcc 10.2.1 20200825 (Alibaba 10.2.1-3.5 2.32) (GCC) 
configure arguments:
  • 1
  • 2
  • 3
  • 4

可以看到configure arguments 没有任何的配置

进入到Nginx源码的config目录

[root@xxxxx sbin]# cd /usr/local/nginx/nginx-1.19.9/
[root@xxxxx nginx-1.19.9]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
  • 1
  • 2

然后make

[root@xxxxx nginx-1.19.9]# make
  • 1

停止nginx

[root@xxxxx nginx-1.19.9]# /usr/local/nginx/sbin/nginx -s stop

  • 1
  • 2

在查看是否成功:

[root@xxxxx nginx-1.19.9]# /usr/local/nginx/sbin/nginx -V

  • 1
  • 2

在这里插入图片描述
可以看到configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 已经有http_ssl_module 模块了

[root@xxxxx nginx-1.19.9]# cd /usr/local/sbin
[root@xxxxx nginx-1.19.9]#  ./nginx
  • 1
  • 2

然后启动Nginx 访问 就可以看到成功了 有锁了
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/103661
推荐阅读
相关标签
  

闽ICP备14008679号