最新动态 > 详情

nginx如何配置80端口和443端口共存

发布时间:2017-07-31 17:18:23

80和443端口协议
80 HTTP协议 超文本传输协议、通过HTTP实现网络上超文本的传输。
443 HTTPS 安全超文本传输协议。

首先,在阿里云搜索产品ssl证书;
购买证书(可以直接购买免费型)
审核通过后下载证书。

在证书控制台下载Nginx版本证书。下载到本地的压缩文件包解压后包含:

  • .crt文件:是证书文件,crt是pem文件的扩展名。
  • .key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)。

友情提示: .pem扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要修改扩展名。

以Nginx标准配置为例,假如证书文件名是a.pem,私钥文件是a.key。

  1. 在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;

  2. 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:

    
     
    1. # HTTPS server
    2. # #server {
    3. # listen 443;
    4. # server_name localhost;
    5. # ssl on;
    6. # ssl_certificate cert.pem;
    7. # ssl_certificate_key cert.key;
    8. # ssl_session_timeout 5m;
    9. # ssl_protocols SSLv2 SSLv3 TLSv1;
    10. # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    11. # ssl_prefer_server_ciphers on;
    12. # location / {
    13. #
    14. #
    15. #}
    16. #}
  3. 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :

    
     
    1. server {
    2. listen 80;
    3. listen 443;
    4. server_name localhost;
    5. ssl on;
    6. root html;
    7. index index.html index.htm;
    8. ssl_certificate cert/a.pem;
    9. ssl_certificate_key cert/a.key;
    10. ssl_session_timeout 5m;
    11. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    12. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    13. ssl_prefer_server_ciphers on;
    14. location / {
    15. root html;
    16. index index.html index.htm;
    17. }
    18. }

    保存退出。

重启 Nginx。
nginx -t
nginx -s reload

会遇到的问题,尝试:
1.ssl on注释掉
2.在 443端口后添加derault_server
  1. server {
  2. listen 80;
  3. listen 443 default_server;
3.查看服务器安全组是否开启 80端口和443端口。

上一篇: 返回列表

下一篇:IIS服务器SSL证书安装