服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - 在Nginx服务器下配置StartSSL和SSL的教程

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

2019-10-30 19:28goldensun Nginx

这篇文章主要介绍了在Nginx服务器下配置StartSSL和SSL的教程,其中申请证书的步骤确实比较麻烦一些,不过出于安全考虑:p需要的朋友可以参考下

第一步 申请本地证书

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

  1. [root@e2fsck ~]# openssl genrsa -des3 -out e2fsck.org.key 2048 
  2. Generating RSA private key, 1024 bit long modulus 
  3. ………..++++++ 
  4. ………..++++++ 
  5. e is 65537 (0×10001) 
  6. Enter pass phrase for e2fsck.org.key: 输入密码 
  7. Verifying – Enter pass phrase for e2fsck.org.key: 输入密码 
  8.   
  9. [root@e2fsck ~]# openssl req -new -key e2fsck.org.key -out e2fsck.org.csr 
  10. Enter pass phrase for e2fsck.org.key: 输入密码 
  11. You are about to be asked to enter information that will be incorporated 
  12. into your certificate request. 
  13. What you are about to enter is what is called a Distinguished Name or a DN. 
  14. There are quite a few fields but you can leave some blank 
  15. For some fields there will be a default value, 
  16. If you enter ‘.', the field will be left blank. 
  17. —– 
  18.   
  19. Country Name (2 letter code) [XX]:CN 
  20. State or Province Name (full name) []:JS 
  21. Locality Name (eg, city) [Default City]:SZ 
  22. Organization Name (eg, company) [Default Company Ltd]:e2fsck 
  23. Organizational Unit Name (eg, section) []:e2fsck.org 
  24. Common Name (eg, your name or your server's hostname) []:*.e2fsck.org 
  25. Email Address []:root@e2fsck.org 
  26.   
  27. Please enter the following ‘extra' attributes 
  28. to be sent with your certificate request 
  29. A challenge password []: 直接回车 
  30. An optional company name []: 直接回车 
  31.   
  32. [root@e2fsck ~]# openssl rsa -in e2fsck.org.key -out e2fsck.org_nopass.key 
  33. Enter pass phrase for e2fsck.org.key: 输入上面的密码 
  34. writing RSA key 
  35.   
  36. [root@e2fsck ~]# ls 
  37.   
  38. 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 根证书与我们的证书和并

  1. [root@e2fsck ~]# cd /usr/local/nginx/conf/   #我这里把证书都放在了这个目录 
  2.   
  3. [root@e2fsck conf]# wget http://cert.startssl.com/certs/ca.pem 
  4.   
  5. [root@e2fsck conf]# wget http://cert.startssl.com/certs/sub.class1.server.ca.pem 
  6.   
  7. [root@e2fsck conf]# cp e2fsck.org.crt e2fsck.org.bak   #先备份下 
  8.   
  9. [root@e2fsck conf]# cat ca.pem sub.class1.server.ca.pem >> e2fsck.org.crt 

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

  1. —–END CERTIFICATE———-BEGIN CERTIFICATE—– 

分开,改成这样

  1. —–END CERTIFICATE—– 
  2. —–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 已经可以正常工作了

延伸 · 阅读

精彩推荐