阅读 247

Nginx配置SSL证书——采用腾讯云SSL证书配置Nginx使用https访问

Nginx配置SSL证书——采用腾讯云SSL证书配置Nginx使用https访问

阅读目录


  • 一、引言

    • 为什么我们要配置这个SSL证书呀?

  • 二、准备工作

    • 配置SSL关联到对应域名

    •  下载证书

  • 三、Nginx配置SSL

    • 3.1将下载的ssl  nginx证书上传至云服务器

    • 3.2开始安装配置nginx

    • http 自动跳转 https (可选)

    • 现在重启Nginx,Chrome应该能正常显示Https.如果只想使用Https连接,可以再添加一个server,然后跳转到https

    • 重启nginx,测试如下:

  • 注意事项:

    • 1、nginx:[emerg]unknown directive ssl,就是这个错误提示

 

正文

一、引言

为什么我们要配置这个SSL证书呀?

SSL证书,就是遵守SSL安全套接层协议的服务器数字证书,由浏览器受信任的根证书颁发机构在验证服务器身份后颁发,具有网站身份验证和加密传输等功能。SSL证书并不是什么高深的技术产品,只需要成功申请下发后,安装到网站服务器即可。当你访问一个网站时,如果发现浏览器的地址栏中显示的是“https://”,就说明这个网站已经安装部署了SSL证书。
网站安装SSL证书到底有哪些好处呢?简单整理几条给大家:
好处一:隐私信息加密。对网站传输的数据进行SSL加密,防止被黑客监听、窃取和篡改,有效保证用户的隐私信息。
好处二:提高网站排名。谷歌、百度等主流搜索引擎表示优先收录以HTTPS开头的网站,并赋予网站高权重,有效提高网站关键词在搜索引擎中的排名。
好处三:受浏览器信任。安装由权威证书颁发机构签发的证书,会成为谷歌、火狐等主流浏览器受信任的站点。
好处四:提升企业形象。安装高级SSL证书可以显示单位名称,大大提升企业的形象和可信度。
好处五:防止流量劫持。网站流量劫持现象频繁发生,安装SSL证书,能有效避免流量劫持。

 

二、准备工作

1、首先得有自己的一台云服务器,需要在后台把443端口开放。

2、购买一个域名(腾讯云、阿里云都行),.com的域名需要备案,其他的不需要备案但是也能访问,可能不稳定。

3、在腾讯云、阿里云申请一个SSL证书,有免费版的,然后下载下来如图。

 

 

 

配置SSL关联到对应域名

一般申请注册阶段就配置好了



 

 

 下载证书

 

                      下载证书.png

 

 

三、Nginx配置SSL

3.1将下载的ssl  nginx证书上传至云服务器

阿里云申请的ssl:nginx文件如下所示:

1,214292799730473.pem

2,214292799730473.key

 

腾讯云申请的ssl, nginx文件如下所示:

 

 

3.2开始安装配置nginx

一、安装编译工具及库文件


yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel


二、安装 PCRE(让 Nginx 支持 Rewrite 功能)

 

复制代码

#下载最新版本的,注意不要用pcre2
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gztar -xvf pcre-8.42.tar.gz
cd pcre-8.42 #安装编译
./configure
make && make install
#查看pcre版本
pcre-config --version

复制代码

 

 

三、安装nginx(源码安装)


复制代码

#下载
wget https://nginx.org/download/nginx-1.15.9.tar.gztar -xvf nginx-1.15.9.tar.gz
cd nginx-1.15.9#编译安装
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.42 make && make install
#查看版本/usr/local/webserver/nginx/sbin/nginx -v

复制代码

 

四、nginx配置


 


 


#启动/usr/local/webserver/nginx/sbin/nginx/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx

 

   

配置nginx配置文件(/usr/local/webserver/nginx/conf/nginx.conf)

复制代码

user root;
#user  nobody;
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;
    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    
   server {
        listen        443 ssl;
        server_name   www.relishfruit.com;
        ssl_certificate  /usr/local/nginx/conf/Nginx/1_www.relishfruit.com_bundle.crt;
        ssl_certificate_key  /usr/local/nginx/conf/Nginx/2_www.relishfruit.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

      }

   server {
        listen       80;
        server_name  www.relishfruit.com;
        rewrite     ^   https://$server_name$request_uri? permanent;                            
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

复制代码

 

 

修改项为:


  • server_name 设置绑定的域名

  • ssl_certificate 证书

  • ssl_certificate_key 证书的私钥

  • ssl_protocols 使用的协议

  • ssl_ciphers 配置加密套件,写法遵循 openssl 标准


 


 

http 自动跳转 https (可选)

这时候的网站既可以使用http://请求,也可以使用https://请求。
如果想将所有的http请求自动跳转为https请求,在/usr/local/nginx/conf/nginx.conf添加

rewrite ^(.*) https://$host$1 permanent;

现在重启Nginx,Chrome应该能正常显示Https.如果只想使用Https连接,可以再添加一个server,然后跳转到https

server {
        listen 80;
    server_name   liuzhichao.com www.liuzhichao.com ;
        rewrite     ^   https://$server_name$request_uri? permanent;
}

  

重启nginx,测试如下:

 

 

 

 

注意事项:

1、nginx:[emerg]unknown directive ssl,就是这个错误提示

因为我们配置这个SSL证书需要引用到nginx的中SSL这模块,然而我们一开始编译的Nginx的时候并没有把SSL模块一起编译进去,所以导致这个错误的出现。

 

复制代码

步骤一:我们先来到当初下载nginx的包压缩的解压目录,如果你是看小编写的教程安装的,解压目录应该在“/usr/loacl/src/

重启报错:缺少http_ssl_module模块

这是由于在最开始编译nginx时,没有加入http_ssl_module模块的原因导致的。
解决方案:重新编译一次nginx,并把http_ssl_module模块加上去。


  • 如果出现这个问题,一般情况下也可能没有安装openssl和openssl-devel模块。请安装这两个模块:
    yum install openssl
    yum install openssl-devel

/configure --with-http_ssl_module  /configure:错误:SSL模块需要OpenSSL库。),原因是因为缺少了OpenSSL,那我们再来安装一个即可执行:yum -y install openssl openssl-/configure ,最后在执行” 命令1/usr/local/nginx/sbin/nginx /usr/local/nginx/sbin//nginx /usr/local/nginx/sbin//sbin/nginx -

复制代码

 

 

 

  

 

 

 

作者:Mr_Yun
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

来源https://www.cnblogs.com/yunwangjun-python-520/p/11605726.html

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐