如何在nginx中使用ssl模块配置HTTPS接入?很多新手对此不是很清楚。为了帮助您解决这个问题,本站将在下面向您详细解释。有这方面需求的人可以借鉴一下,希望你能有所收获。
操作步骤:
一、下载CA证书
1.登录阿里巴巴云,选择“控制台”-“产品和服务”,在“安全(云盾)”栏选择“CA证书服务(数据安全)”。
在购买的证书上点击“下载”,在新打开的页面上选择“Nginx/Tengine”,点击“Nginx下载证书”。
二、在Nginx配置文件中安装证书
文档描述:1。证书文件“证书名称。pem包含两个段落。请不要删除任何段落。2.如果CSR是由证书系统创建的,它还包括证书私钥文件“证书名称”。关键”。(1)在Nginx配置文件所在的目录中创建cert文件夹,并将所有下载的文件复制到cert目录中。如果CSR文件是在申请证书时自己创建的,请将相应的私钥文件放在证书目录中,并将其命名为“证书名称”。键”;
(2)打开Nginx安装目录下的conf目录下的Nginx.conf文件,找到:
# HTTPSserver
# #服务器{
# listen443
# server _ namelocalhost
# sslon
# ssl _ certificatecert.pem
# SSL _ certificate _ key kert . key;
# ssl _ session _ timeout5m
# SSL _ ProtocolsSlv2s slv 3 TLS v1;
# ssl _密文:ADH:export 56: RC4 RSA : high : medium : low : sslv 2: EXP;
# SSL _ prefere _ server _ cipher son;
#location/{
#
#
#}
#}(3)修改为(以下属性与证书配置直接相关,请根据您的实际情况复制或调整其他属性):
服务器{
listen443
server _ namelocalhost
sslon
roothtml
indexindex.htmlindex.htm;
Ssl_certificatecert/证书名称。pem
SSL _ certificate _ key kert/证书名称。关键;
ssl _ session _ timeout5m
SSL _ cipher secdhe-RSA-AES 128-GCM-sha 256: ecdhe : ecdh 3360 AES : high :NULL:aNULL:MD5:ADH:RC4;
SSL _ ProtocolsTLsv1tlsv 1.1 lsv 1.2;
SSL _ prefere _ server _ cipher son;
位置/
roothtml
indexindex.htmlindex.htm;
}
}保存并退出。
(4)重启Nginx。
Nginx-sreload(5)通过https访问您的站点,测试站点证书的安装配置。在浏览器中输入https://dmsdbj.com,如下图所示,表示配置成功。
安装过程中遇见的问题
错误一:
nginx: [emerg]未知指令’ SSL ‘ in/usr/local/nginx/conf/nginx . con f :151
解决方案:
此错误可能有两个原因:
情况1:配置文件的格式不正确。
解决方法参考链接:https:
//www.jb51.net/article/141569.htm
情况二:ssl模块并未被安装
默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数,这种情况也会导致错误二的出现。
解决方案:
nginx缺少http_ssl_module模块,编译安装的时候带上–with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块,其实也很简单,往下看: 做个说明:我的nginx的安装目录是/usr/local/nginx这个目录,我的源码包在/usr/local/src/nginx-1.3.6目录
(1)切换到源码包:
cd/root/nginx-1.13.6
(2)配置信息:
./configure--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_ssl_module
(3)配置完成后,运行make进行编译,千万不要进行make install,否则就是覆盖安装。
mark
(4)然后备份原有已经安装好的nginx
cp/usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx.bak
(5)停止Nginx,正常命令直接 nginx -s stop就可以
nginx-sstop
如果关不掉,就直接Kill掉进程。ps aux | grep 进程名 查看进程占用的PID号。
psaux|grepnginx
杀掉查出来的PID就可以了,kill -9 PID 命令用于终止进程。必须先kill掉root对应的PID才能进行下面的三个nobody的PID。
kill-910922kill-928276kill-928277kill-928278
(6)将刚刚编译好的nginx覆盖掉原有的nginx
cp./objs/nginx/usr/local/nginx/sbin/
(7)启动nginx
nginx
(8)通过下面的命令查看是否已经加入成功。
nginx-V
错误二:
nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:148
解决方案:
出现这种情况的解决方案参考错误一的第二种情况的解决方案即可。
错误三:
Stoping nginx… nginx: [emerg] BIO_new_file(“/usr/local/nginx/conf/cert/214291778530222.pem”) failed (SSL: error:02001002:system library:fopen:No such file or directo活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看ry:fopen(‘/usr/local/nginx/conf/cert/214291778530222.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file) failed. Use force-quit
解决方案:
这可能是证书路径存放的位置不正确导致的,而且只要写绝对路径,就会报错,无论windows还是linux。
将证书文件放到nginx.conf所在的目录下即可。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
《怎么在nginx中使用ssl模块配置HTTPS访问》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...