在Nginx服务器下配置StartSSL和SSL的教程

 更新时间:2015年07月08日 10:38:58   投稿:goldensun  
这篇文章主要介绍了在Nginx服务器下配置StartSSL和SSL的教程,其中申请证书的步骤确实比较麻烦一些,不过出于安全考虑:p需要的朋友可以参考下

第一步 申请本地证书

1. openssl 之类的软件我就不多说,系统自带的,如果不带,自己 yum 下

[root@e2fsck ~]# openssl genrsa -des3 -out e2fsck.org.key 2048
Generating RSA private key, 1024 bit long modulus
………..++++++
………..++++++
e is 65537 (0×10001)
Enter pass phrase for e2fsck.org.key: 输入密码
Verifying – Enter pass phrase for e2fsck.org.key: 输入密码

[root@e2fsck ~]# openssl req -new -key e2fsck.org.key -out e2fsck.org.csr
Enter pass phrase for e2fsck.org.key: 输入密码
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.', the field will be left blank.
—–

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:JS
Locality Name (eg, city) [Default City]:SZ
Organization Name (eg, company) [Default Company Ltd]:e2fsck
Organizational Unit Name (eg, section) []:e2fsck.org
Common Name (eg, your name or your server's hostname) []:*.e2fsck.org
Email Address []:root@e2fsck.org

Please enter the following ‘extra' attributes
to be sent with your certificate request
A challenge password []: 直接回车
An optional company name []: 直接回车

[root@e2fsck ~]# openssl rsa -in e2fsck.org.key -out e2fsck.org_nopass.key
Enter pass phrase for e2fsck.org.key: 输入上面的密码
writing RSA key

[root@e2fsck ~]# ls

e2fsck.org.csr e2fsck.org.key e2fsck.org_nopass.key

 

第二步 去 startssl 申请免费证书

1. 登录官方网站 http://www.startssl.com/?app=0

2. 选择 Control Panel(右上角) 然后选择 Express Lane(最下面的大图标)

3. 填写注册信息(尽量真实,不然难通过),然后就去邮件等,是 2 封邮件,第二封邮件带一个地址,登录即可

4. 进去后,做 下一步 之类的简单事情后,选择 Certificates Wizard

5. Certificate Target: 这里选择 Web Server SSL/TLS Certificate

6. 这里选择 Skip 因为 第一步 的时候配置好了

7. 这里把 第一步 中的 e2fsck.org.csr 内容粘贴到这里

8. 然后就是下一步,添加域名什么的简单的事情

9. 最后看到一段代码就是 crt 证书了,保存下来,我这里取名为 e2fsck.org.crt 然后把它放到 /usr/local/nginx/conf 目录(你放哪随便)

10. 为了使部分浏览器能够识别证书,还得把 CA 根证书与我们的证书和并

[root@e2fsck ~]# cd /usr/local/nginx/conf/   #我这里把证书都放在了这个目录

[root@e2fsck conf]# wget http://cert.startssl.com/certs/ca.pem

[root@e2fsck conf]# wget http://cert.startssl.com/certs/sub.class1.server.ca.pem

[root@e2fsck conf]# cp e2fsck.org.crt e2fsck.org.bak   #先备份下

[root@e2fsck conf]# cat ca.pem sub.class1.server.ca.pem >> e2fsck.org.crt

然后编辑 e2fsck.org.crt  把里面的

—–END CERTIFICATE———-BEGIN CERTIFICATE—–

分开,改成这样

—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–

 

第三步 配置 nginx.conf

主要是修改这段

复制代码 代码如下:
server {   listen    443;   server_name www.e2fsck.org;   index index.html index.htm index.php;   ssl         on;            <span id="note">#主要是这段</span>   ssl_certificate   e2fsck.org.crt;   ssl_certificate_key e2fsck.org_nopass.key;   ssl_session_timeout 5m;   ssl_protocols SSLv2 SSLv3 TLSv1;   ssl_ciphers HIGH:!aNULL:!MD5;   ssl_prefer_server_ciphers  on;   location ~ .php$ {               <span id="note">#这一小段是为了 https 能解析 php</span>     root      html;     fastcgi_pass  127.0.0.1:9000;     fastcgi_index index.php;     fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;     fastcgi_param HTTPS on;     include    fastcgi.conf;   }   if (-f $request_filename/index.html){      <span id="note">#如果非SSL做了伪静态,这里也要</span>     rewrite (.*) $1/index.html break;   }   if (-f $request_filename/index.php){      rewrite (.*) $1/index.php;   }   if (!-f $request_filename){     rewrite (.*) /index.php;   }   #location / {   #root  html;   #index index.html index.htm index.php;   #} }


然后重启 nginx (如果以前没配置过 ssl,就一定要重启, reload 没用)

 

第四步 测试 ssl

浏览器输入 https://www.e2fsck.org 可以看到 ssl 已经可以正常工作了

相关文章

  • nginx配置文件使用环境变量的操作方法

    nginx配置文件使用环境变量的操作方法

    Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务,相较于Apache、lighttpd具有占有内存少,稳定性高等优势,所以深受用户喜爱,今天小编给大家分享nginx配置文件使用环境变量的操作方法,感兴趣的朋友一起看看吧
    2021-06-06
  • Windows系统下安装及部署Nginx详细教程(含多个站点部署)

    Windows系统下安装及部署Nginx详细教程(含多个站点部署)

    Nginx是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,这篇文章主要给大家介绍了关于Windows系统下安装及部署Nginx(含多个站点部署)的相关资料,需要的朋友可以参考下
    2024-01-01
  • nginx正向代理与反向代理详解

    nginx正向代理与反向代理详解

    本文给大家分享的是nginx实现正向代理和反向代理的具体方法配置以及不同的实例情况,非常的详细,希望大家能够喜欢
    2020-03-03
  • Nginx开启Brotli压缩算法实现过程详解

    Nginx开启Brotli压缩算法实现过程详解

    这篇文章主要介绍了Nginx开启Brotli压缩算法实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Nginx配置中if判断的使用

    Nginx配置中if判断的使用

    在Nginx配置中,有时rewrite规则无法满足复杂逻辑判断需求,这时需要使用if语法,if可以根据文件是否存在、路径特定条件等进行判断,本文就来介绍一下if判断的使用
    2024-10-10
  • nginx作grpc的反向代理踩坑总结

    nginx作grpc的反向代理踩坑总结

    nginx是一款高性能的web服务器,常用于负载均衡和反向代理,本文主要介绍了nginx作grpc的反向代理踩坑总结,感兴趣的可以了解一下
    2021-07-07
  • Nginx的c30k问题解决方法

    Nginx的c30k问题解决方法

    这篇文章主要介绍了Nginx的c30k问题解决方法,本文同时探讨了Nginx AIO的使用问题,需要的朋友可以参考下
    2014-09-09
  • nginx自定义变量与内置预定义变量的使用

    nginx自定义变量与内置预定义变量的使用

    这篇文章主要介绍了nginx自定义变量与内置预定义变量的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Ubuntu下搭建与配置Nginx服务

    Ubuntu下搭建与配置Nginx服务

    这篇文章介绍了Ubuntu下搭建与配置Nginx服务的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 为Nginx动态添加模块的方法

    为Nginx动态添加模块的方法

    这篇文章主要介绍了为Nginx动态添加模块的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论