LNMPA如何配置HTTPS:LNMPA服务器搭建HTTPS网站教程
本文以Startssl为例,讲述如何申请Startssl,如何搭建https网站以及如何安装SPDY协议。Startssl是国外的一款 SSL证书,全英文申请和部署安装界面,并且审核签发证书速度没那么快。这对中国站长来说显得不是那么方便,甚至让有些站长比较头疼。有人要问有没有支持 中文的免费SSL证书呢?当然有,这里也给广大站长推荐一款完美支持中文申请和部署的免费SSL证书-沃通免费多域名SSL证书,不但支持中文,还支持多个域名,最多支持100个域名。相信做站长的手里肯定不止一个网站,那么使用多域名免费SSL证书就更加方便和节约成本了。申请地址http://freessl.wosign.com。好啦,下面先来看看Startssl的申请安装部署。
StartSSL申请注意事项:
(1)需要一个域名,并开通域名邮箱,邮箱前缀为:webmaster这样的信息,一定要开通一个webmaster@yourdomainname.com这样的域名,这个会用来验证你的域名;
(2)申请时一定要填写完整正确的信息,否则无法通过申请,我就是因为第一次填写的地址信息不全,没有通过,一般添写正确的地址很快就会通过的;
(3)打开网站 在control panel / sign-up 注意填写正确资料。收到邮件后复制验证码。然后可以生成一个证书,注意,startssl.com不是以用户名、密码来验证用户的,是用证书来验证用户 的。所以生成证书后(火狐会导入证书),注意备份证书。丢失证书后只能重新注册。
(4)登录后还要验证域名才能为该域名生成SSL证书,可以选择在whois里的邮箱hostmaster@domain、postmaster@domain或者webmaster@domain
(5)然后就可以在Certificates wizard里就可以申请SSL证书了。
(6)有效期一年。
StartSSL证书申请流程:
填写申请资料的过程中尽量使用正确的信息。如果你的IP地址是在大陆,你输入香港是会被拒绝的。而且你的地址也是也是要详细的。按照表单写完以后点 击Continue按钮。然后你填写的邮箱会收到一个验证码。 上面说大概需要等6个小时收到通知。然后打开你的邮箱,把验证码输入到你的浏览器Code的框里,然后继续。
通过后,会收到通过验证的邮件,然后给你一个URL,输入到浏览器中进行下一步安装证书。如果弹出的窗口依然还让你输入Code,那则输入邮件下面 链接的Code。点击Continue,接下来你的浏览器开始安装私钥,相当于建立用户名密码。然后密钥安装成功以后提示你开始安装证书。
证书安装完毕以后点击完成。 这时给你会收到邮件说你安装好啦,可以使用了。
在Validations Wizard选择里验证你的域名。按照提示操作就行了,它会扫描你的网站上的邮箱,然后列出来,会给你的邮箱发一封信,所以你一定要有一个企业邮箱来收信的。
域名验证成功后,接下来申请域名SSL证书。点击Certificates Wizard ,选择下拉菜单中的Web Server SSL/TSL Certificate然后进入下一步他会问你验证方式,这一步如果你跳过需要在VPS上设置,如果没有跳过,你必须设置密码,不少于10位的。
然后点击下一步生成一段字符串,这一小的操作中会出现两段字条串:
- —–BEGIN RSA PRIVATE KEY—–
- Proc-Type: 4,ENCRYPTED
- DEK-Info: AES-256-CBC,1FBB7A12C5332861D52FEDFA2E3E7AE3
- ….
复制内容保存为 /etc/ssl/certs/xxxx.crt
- —-BEGIN CERTIFICATE—–
- MIIGdTCCBV2gAwIBAgIDYTrWMA0GCSqGSIc3FQEBBQUAMIGMMQswCQYDVQQGEwJJ
- …
复制内容保存为 /etc/ssl/certs/xxxx.key,下面就是配置你的VPS上的NGINX服务器了。
- vi /usr/local/nginx/conf/vhost/xxxx.conf
在Server里添加
- listen 443 ssl spdy;
- ssl on;
- ssl_certificate /etc/ssl/certs/xxxx.crt;
- ssl_certificate_key /etc/ssl/certs/xxxx.key;
- ssl_session_timeout 10m;
- ssl_protocols SSLv2 SSLv3 TLSv1;
- ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
- ssl_prefer_server_ciphers on;
Shell 如果你想让http跳转到https下,需要再加一段代码
- if ($ssl_protocol = “”) {
- rewrite ^/(.*)$ https://www.domain.com/$1 permanent;
- }
上面这些做完之后,还需要另外对firefox浏览器作一些配置更改,到/etc/ssl/certs/xxxx.crt所在目录执行以下代码
- wget http://cert.startssl.com/certs/sub.class1.server.ca.pem
- pem sub.class1.server.ca.pem >> xxxx.crt
Shell 就是向 xxx.crt里面追加一些内容,这样firefox就不会提示证书不安全了。
SPDY协议安装
你要先下载最新的 OpenSSL,比如 1.0.1e,这里是下载列表,红色标注的就是最新版了。但还是需要下载,解压
- cd /tmp
- wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
- tar zxvpf openssl-1.0.1e.tar.gz
Shell 然后下载最新的Nginx
先用 /usr/local/nginx/sbin/nginx -V 这个是查看nginx安装了什么模块 安装的时候把这些都再加上
- Shell wget http://nginx.org/download/nginx-1.7.2.tar.gz
- tar zxvf nginx-1.7.2.tar.gz
- cd nginx-1.7.2
- ./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-ipv6 –with-pcre –with-http_sub_module –with-http_spdy_module –with-openssl=/tmp/openssl-1.0.1e
- mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
- cp objs/nginx /usr/local/nginx/sbin/nginx
- /usr/local/nginx/sbin/nginx -t
- make upgrade
- /usr/local/nginx/sbin/nginx -v
上面需要注意的是./configure –with-http_ssl_module –with-http_spdy_module –with-openssl=/tmp/openssl-1.0.1e 这是最小安装方法,你需要根据自己的配置安装,上面是lnmpa下面的。
–with-openssl=/tmp/openssl-1.0.1e 路径就是刚下载的那个路径。
再配置完成后,执行 /etc/init.d/nginx reload 或 /usr/local/nginx/sbin/nginx -s reload 重载 Nginx 配置文件即可正常访问了。
如果你不想使用 SPDY ,记得修改Server里的 listen 443 ssl spdy; 改为 listen 443 ssl;
如何查看有没有启用SPDY成功没
在Chrome浏览器里打开 chrome://net-internals/#spdy 便能查看目前使用SPDY的连接。或者使用插件查看, https://chrome.google.com/webstore/detail/spdy-indicator/mpbpobfflnpcgagjijhmgnchggcjblin
补充:关于 “此网页包含的脚本来自于身份未经验证的源” 的提示信息
出现这个一般是因为在网页内容中加载了其它不带https的内容,比如加载了google font
XHTML 一般解决办法就是把资源下载到本地,然后使用相对路径,或者使用https的资源地址。