Nginx配置SSL证书搭建HTTPS服务器

利用Openssl生成证书

# 生成一个RSA密钥
openssl genrsa -des3 -out bnt.key 1024
# 生成一个证书请求
openssl req -new -key bnt.key -out bnt.csr
# 自己签发证书
openssl x509 -req -days 365 -in bnt.csr -signkey bnt.key -out bnt.crt

修改Nginx配置

server {
        listen       7099  ssl;
        server_name  localhost;
    #
    #
        ssl on;
        # 自己的证书,放在与nginx.conf同一文件夹下。(若放不同文件夹注意路径问题)
        ssl_certificate   /usr/local/nginx/bnt.crt;
        ssl_certificate_key  /usr/local/nginx/bnt.key;
        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;
        ssl_verify_client off;

        location / {
                 proxy_redirect  off;
                 proxy_pass   https://freeswitch;      # 转发
                 proxy_set_header Host $host;
                 proxy_set_header X-Real_IP $remote_addr;
                 proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
                 proxy_http_version 1.1;
                 proxy_set_header Upgrade $http_upgrade;   # 升级协议头
                 proxy_set_header Connection upgrade;
       }

    }

重启nginx

可能会遇到的问题

配置完成后,重启可能会遇到 nginx:[emerg]unknown directive ssl 错误 ;因为我们配置这个SSL证书需要引用到nginx的中SSL这模块,然而我们一开始编译的Nginx的时候并没有把SSL模块一起编译进去,所以导致这个错误的出现。

解决步骤:
1.重新编译Nginx,将SSL模块一起编译进去

./configure --with-http_ssl_module

2.执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,不然你整个nginx会重新覆盖的。
3.在我们执行完做命令后,我们可以查看到在nginx解压目录下,objs文件夹中多了一个nginx的文件,这个就是新版本的程序了。首先我们把之前的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可。

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

再重启Nginx

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 浏览器地址栏标志着 HTTPS 的绿色小锁头从心理层面上可以给用户专业安全的心理暗示,本文简单总结一下如何在 Ng...
    QieZi阅读 38,032评论 0 10
  • 现在很多网站都会使用SSL证书对网站数据进行传输加密,尤其是银行、金融、电商类的网站。但很多人对于https的理解...
    兔子丶哥阅读 960评论 0 2
  • 1. 去阿里云或者腾讯云申请免费的ssl证书,这里以阿里云为例。成功以后获得两个文件以.key和.pem结尾的文件...
    亦亦嘟嘟阅读 487评论 0 0
  • 大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个location配置块使用了多个 Nginx 模块...
    SkTj阅读 7,807评论 0 12
  • 特种兵第三周常规作业: 作业一:每日晨间朋友圈见证(必须在12点之前完成)+10分[玫瑰][太阳]【绒布峰针团队营...
    钟仁芬阅读 232评论 0 0