Total Pageviews

Saturday, 19 September 2015

生成SSL证书步骤并配置到Nginx

一、生成SSL证书

生成SSL证书步骤说明Shell:

#生成key值 fourfire.cc.key 2048 bit
#在国外好像已经全部是2048bit我提交的网站已经不支持2048以下的了
[root@vps ssl]# openssl genrsa -des3 -out fourfire.cc.key 2048
Generating RSA private key, 2048 bit long modulus
.....+++
........................+++
e is 65537 (0x10001)
Enter pass phrase for fourfire.cc.key: #此处输入一个key
Verifying - Enter pass phrase for fourfire.cc.key: #重复key

#生成一个不要密码的key,便于在重启服务器的时候不输入密码
[root@vps ssl]# openssl rsa -in fourfire.cc.key -out fourfire.cc_nopass.key
Enter pass phrase for fourfire.cc.key: #此处输入上面的key
writing RSA key

#这里生成一个CSR文件,这个很重要!!!将些文件提交到SSL证书发放处,会给你发放受信证书的
[root@vps ssl]# openssl req -new -key fourfire.cc.key -out fourfire.cc.csr
Enter pass phrase for fourfire.cc.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) []:Guangdong #省
Locality Name (eg, city) [Default City]:Shenzhen #城市
Organization Name (eg, company) [Default Company Ltd]:Four Fire #公司名
Organizational Unit Name (eg, section) []:Four Fire #组织机构
Common Name (eg, your name or your server's hostname) []:www.fourfire.cc #域名
Email Address []:fourfirexxx@gmail.com 邮箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: #密码
An optional company name []: #密码

#这一步是非必须的,自己生成一个crt文件,
#放在配置里可以用https来访问网站了,当然自己生成的ssl证书是不受信任的
[root@vps ssl]# openssl x509 -req -days 365 -in fourfire.cc.csr -signkey fourfire.cc.key -out fourfire.cc.crt
所有生成key和crt 文件的步骤就好了

二、上传到服务器并配置Nginx

Nginx配置SSL:

server {
    listen       443;
    server_name  fourfire.cc www.fourfire.cc;
    ssl     on;
    ssl_certificate fourfire.cc.crt; #这里是你自己生成的crt文件或者SSL发放机构发放给你可信证书
    ssl_certificate_key fourfire.cc_nopass.key; #这里是你证书的key

    ssl_session_timeout  5m;

    ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2; #SSLv2已经废弃,建议不添加在此列 2014/04/30 Update
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    ...
}
注意:

当你上传完SSL证书使用后,发现Safari地址栏里的域名左边没有https图标的时候,原因:你的网站里包含了其它网站的连接,存在不安全的因素所以Safari不会显示https的图标。解决的办法:把这些资源拷贝到你的站点目录再在网站里引用
使用Firefox浏览网页的时候,发现就算是授权过的SSL证书依然是不受信任的。解决办法:将*SSLCA2.crt(COMODORSAAddTrustCA.crt)这个证书发放中心给你的文件的内容加到你申请的证书的后面,是证书的完整内容包含开始与结束
Chrome浏览器地址尾部有一个灰色的盾牌,原因同1.

来自https://www.fourfire.cc/38.html