服务器lnmp安装StartSSL免费安全证书教程

9,071
服务器lnmp安装StartSSL免费安全证书教程
  • 5.00 / 5 5
5.00分(2票)
文章目录
[hide]

一直以来,我都想尝试一下安装ssl安全证书,实现https访问我的网站。做了几天功课后,我掌握了从Startssl免费证书申请到安装的完整流程。

环境约定

硬件: Bandwagonhost 512MB OpenVZ VPS
服务器: CentOS 5.0 32位 LNMP 1.1 by 军哥

安装步骤

  1. 申请Startssl 类型:个人网站,Class 1,验证邮箱、域名所有权
  2. 在Startssl右上角,点击证书生成向导,生成、保存ssl.crt和ssl.key
    保存你设置的私钥密码到别处,切记!
  3. 下载Startssl根证书(两个),合并到ssl.crt
    http://www.startssl.com/certs/ca.pem
    http://www.startssl.com/certs/sub.class1.server.ca.pem
    (下载后,用notepad++打开,复制内容,粘贴到ssl.crt文件底部)
  4. 上传ssl.crt和ssl.key到服务器/root 目录
    (不一定必须在/root目录,根据你个人需求选择上传位置)
  5. SSH到你的VPS,运行命令,解密私钥:
    openssl rsa -in ssl.key -out /root/ssl.key
    (ssl.key位置,根据你的真实上传位置修改。上文默认上传到/root目录。如果忽略本步骤,每次重启lnmp,服务器都会要求你输入私钥密码)
  6. 修改ssl.key权限,防止恶意攻击泄露
    chmod 600 /root/ssl.key
  7. 修改nginx配置文件,添加对ssl支持
    lnmp 1.1一键安装包默认配置了openssl,只需修改主机配置文件即可。

    Nginx主配置文件位置:/usr/local/nginx/conf/nginx.conf

    虚拟主机配置文件位置:/usr/local/nginx/conf/vhost/域名.conf

提醒:使用/root/vhost.sh添加虚拟主机。举例如下:我们添加了网站abc.com,所以要修改配置文件/usr/local/nginx/conf/vhost/abc.com.conf,添加如下代码:

server
{
listen 80; #http访问端口
listen 443 ssl; #https访问端口
#listen [::]:80; #IPv6访问控制开关
ssl on; #开启https方式访问
ssl_certificate /root/ssl.crt; #ssl证书位置
ssl_certificate_key /root/ssl.key; #ssl密钥
server_name abc.com; #虚拟主机绑定的域名
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/abc.com; #虚拟主机网站根目录位置
include wordpress.conf; #虚拟主机reWrite规则

上述代码的效果是,网站可同时以http和https两种方式访问,如果强制https访问,删除 listen 80;

注意事项

  1. 中国大陆曾经发生过官方大规模封锁使用了Startssl免费证书的网站,随后逐步解封。考虑到网站稳定性,推荐你购买商业SSL证书。
  2. https会消耗服务器资源,在网站访问量较大的情况下,可作ssl技术优化,例如:

worker_processes auto;

http {
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

server {
listen 443 ssl;
server_name www.example.com;
keepalive_timeout 70;

ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

我们调高keepalive_timeout和ssl_session_cache参数,参见nginx官方优化ssl教程

SSL优缺点

缺点

  1. 安装技术难度大;
  2. https消耗CPU资源大;
  3. 据说百度不能抓取https页面,Google可以抓取。
  4. 防火墙不确定因素;

优点

  1. Google给予https站点额外权重,鼓励采用ssl加密的网站;
  2. 抵抗防火墙扫描,保护网站内容数据安全;
  3. 基于https搭建商业网站,销售产品及其他用途;

实测发现,StartSSL免费证书效果很棒,在IE、Chrome、Firefox浏览器都能准确识别,我用iPhone手机的Safari和Chrome移动版浏览器测试同样100%识别https站点。

推荐美国高速VPS,硬件配置高,价格便宜:

DigitalOcean VPS:只需55秒搭建SSD云主机,SanFrancisco机房对大陆速度快;

Linode VPS: 老牌VPS,性能稳定,SSD硬盘

Vultr:价格便宜,耐折腾

InterServer:美国西海岸高速机房

 

参考资料

https://www.startssl.com/?app=42

喵~本文目前有2条留言,欢迎发表评论!

  1. 板凳也不错
    :

    StartSSL的延时严重吗

    [回复]
  2. 传说中的沙发
    :

    博主朋友,为什么我去掉listen 80 却没有出现强制https 是为什么呢

    [回复]

打破沉默,我来发表评论鸟~