nginx配置https

2018-09-21  本文已影响0人  embers1996

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机构进行证书签名。

上一篇下一篇

猜你喜欢

热点阅读