美文网首页
nginx配置https

nginx配置https

作者: embers1996 | 来源:发表于2018-09-21 15:45 被阅读0次

    1 使用openssl生成证书

    这里我们使用openssl进行CA证书自签,用来学习,有条件的可以让第三方机构进行证书签名。
    openssl是目前最流行的SSL密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS协议的实现。

    生成所需要的crt文件

    openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /usr/local/nginx/ssl/nginx.key -out /usr/local/nginx/ssl/nginx.crt
    

    执行上面的命令会出现以下内容需要进行填写,根据自己的情况进行填写。

    Country Name (2 letter code) [XX]:CN  //国家名称(2个字母代码)[XX]:CN                           
    State or Province Name (full name) []:JS  //州或省名(全名)[]:SC                                   
    Locality Name (eg, city) [Default City]:KS   //地点名称(如城市)[默认城市]:CD                       
    Organization Name (eg, company) [Default Company Ltd]:test.com //  组织名称(如公司)[Default Company Ltd]:test.com        
    Organizational Unit Name (eg, section) []:ops//  组织单位名称(例如,部分)[]:ops                       
    Common Name (eg, your name or your server's hostname) []:www.test.com //  通用名称(例如,您的姓名或服务器的主机名)[]:CA.test.com
    Email Address []:admin@ca.test.com //  电子邮件地址[]:admin@ca.test.com      
    

    最后生成了两个文件


    image.png

    2 nginx安装http_ssl_module模块

    Nginx如果未开启SSL模块,配置Https时提示错误。

    nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:xxx
    

    nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了。
    本场景是服务器已经安装过nginx,但是未安装http_ssl_module。

    首先进入到源码包路径下。
    执行configure命令:

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

    编译

    make
    

    注:不需要执行make install,否则就覆盖安装了
    备份一下原来的nginx

    cp -r /usr/local/nginx/ /usr/local/nginx_bak
    

    然后将刚刚编译好的nginx覆盖掉原有的nginx(nginx需要停止)

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

    查看安装情况(注意V大写):

    /usr/local/nginx/sbin/nginx -V
    
    image.png

    3 配置https

    更改nginx.conf文件

     server {
            listen 443 ssl;
            server_name  localhost;
            ssl_certificate      ../ssl/nginx.crt;
            ssl_certificate_key  ../ssl/nginx.key;
            location / {
                root   html;
                index  index.html index.htm;
            }
    
        }
    
    

    用https访问


    image.png

    可以看到地址栏上出现了红色的https,这是否与我们使用的是自签证书,所以安全程度并不高,正常的话还是要让第三方CA机构进行证书签名。

    相关文章

      网友评论

          本文标题:nginx配置https

          本文链接:https://www.haomeiwen.com/subject/hgianftx.html