青衣 发表于 2021-8-22 21:27:53

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

第一步 申请本地证书
1. openssl 之类的软件我就不多说,系统自带的,如果不带,自己 yum 下



# 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: 输入密码



# 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) :CN

State or Province Name (full name) []:JS

Locality Name (eg, city) :SZ

Organization Name (eg, company) :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 []: 直接回车



# openssl rsa -in e2fsck.org.key -out e2fsck.org_nopass.key

Enter pass phrase for e2fsck.org.key: 输入上面的密码

writing RSA key



# 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 根证书与我们的证书和并



# cd /usr/local/nginx/conf/   #我这里把证书都放在了这个目录



# wget http://cert.startssl.com/certs/ca.pem



# wget http://cert.startssl.com/certs/sub.class1.server.ca.pem



# cp e2fsck.org.crt e2fsck.org.bak   #先备份下



# 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_cipherson;   location ~ .php$ {               <span id="note">#这一小段是为了 https 能解析 php</span>   root      html;   fastcgi_pass127.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 / {   #roothtml;   #index index.html index.htm index.php;   #} }

然后重启 nginx (如果以前没配置过 ssl,就一定要重启, reload 没用)第四步 测试 ssl
浏览器输入 https://www.e2fsck.org 可以看到 ssl 已经可以正常工作了

文档来源:http://www.zzvips.com/article/24244.html
页: [1]
查看完整版本: 在Nginx服务器下配置StartSSL和SSL的教程