在Nginx服务器下配置StartSSL和SSL的教程
第一步申请本地证书
1.openssl之类的软件我就不多说,系统自带的,如果不带,自己yum下
[root@e2fsck~]#opensslgenrsa-des3-oute2fsck.org.key2048 GeneratingRSAprivatekey,1024bitlongmodulus ………..++++++ ………..++++++ eis65537(0×10001) Enterpassphrasefore2fsck.org.key:输入密码 Verifying–Enterpassphrasefore2fsck.org.key:输入密码 [root@e2fsck~]#opensslreq-new-keye2fsck.org.key-oute2fsck.org.csr Enterpassphrasefore2fsck.org.key:输入密码 Youareabouttobeaskedtoenterinformationthatwillbeincorporated intoyourcertificaterequest. WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN. Therearequiteafewfieldsbutyoucanleavesomeblank Forsomefieldstherewillbeadefaultvalue, Ifyouenter‘.',thefieldwillbeleftblank. —– CountryName(2lettercode)[XX]:CN StateorProvinceName(fullname)[]:JS LocalityName(eg,city)[DefaultCity]:SZ OrganizationName(eg,company)[DefaultCompanyLtd]:e2fsck OrganizationalUnitName(eg,section)[]:e2fsck.org CommonName(eg,yournameoryourserver'shostname)[]:*.e2fsck.org EmailAddress[]:root@e2fsck.org Pleaseenterthefollowing‘extra'attributes tobesentwithyourcertificaterequest Achallengepassword[]:直接回车 Anoptionalcompanyname[]:直接回车 [root@e2fsck~]#opensslrsa-ine2fsck.org.key-oute2fsck.org_nopass.key Enterpassphrasefore2fsck.org.key:输入上面的密码 writingRSAkey [root@e2fsck~]#ls e2fsck.org.csre2fsck.org.keye2fsck.org_nopass.key
第二步去startssl申请免费证书
1.登录官方网站http://www.startssl.com/?app=0
2.选择ControlPanel(右上角)然后选择ExpressLane(最下面的大图标)
3.填写注册信息(尽量真实,不然难通过),然后就去邮件等,是2封邮件,第二封邮件带一个地址,登录即可
4.进去后,做下一步之类的简单事情后,选择CertificatesWizard
5.CertificateTarget:这里选择WebServerSSL/TLSCertificate
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@e2fsckconf]#wgethttp://cert.startssl.com/certs/ca.pem [root@e2fsckconf]#wgethttp://cert.startssl.com/certs/sub.class1.server.ca.pem [root@e2fsckconf]#cpe2fsck.org.crte2fsck.org.bak#先备份下 [root@e2fsckconf]#catca.pemsub.class1.server.ca.pem>>e2fsck.org.crt
然后编辑e2fsck.org.crt 把里面的
—–ENDCERTIFICATE———-BEGINCERTIFICATE—–
分开,改成这样
—–ENDCERTIFICATE—– —–BEGINCERTIFICATE—–
第三步配置nginx.conf
主要是修改这段
server{ listen 443; server_namewww.e2fsck.org; indexindex.htmlindex.htmindex.php; ssl on; <spanid="note">#主要是这段</span> ssl_certificate e2fsck.org.crt; ssl_certificate_keye2fsck.org_nopass.key; ssl_session_timeout5m; ssl_protocolsSSLv2SSLv3TLSv1; ssl_ciphersHIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location~.php${ <spanid="note">#这一小段是为了https能解析php</span> root html; fastcgi_pass 127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name; fastcgi_paramHTTPSon; include fastcgi.conf; } if(-f$request_filename/index.html){ <spanid="note">#如果非SSL做了伪静态,这里也要</span> rewrite(.*)$1/index.htmlbreak; } if(-f$request_filename/index.php){ rewrite(.*)$1/index.php; } if(!-f$request_filename){ rewrite(.*)/index.php; } #location/{ #root html; #indexindex.htmlindex.htmindex.php; #}}
然后重启nginx(如果以前没配置过ssl,就一定要重启,reload没用)
第四步测试ssl
浏览器输入https://www.e2fsck.org可以看到ssl已经可以正常工作了