2

HTTP升级HTTPS配置了三次,我都流汗了

  • Windows配置HTTPS升级

    • 当前没有SSL安全证书,需要OpenSSL生成一个免费的证书
    • 在nginx的目录下创建ssl文件,用来存储证书
    • HTTPS升级需要的证书有crt(CA认证后的证书,Windows下是crt),key(证书使用秘钥),csr(证书的请求文件,申请证书的)

      • CA的crt生成:
      openssl req -new -x509 -key server.key -out ca.crt -days 3650
      • 创建私钥key:
      openssl genrsa -des3 -out server.key 2048   //当前输入的密码要记住,以后会用
      • 无论你用 DV 还是 OV 生成私钥,都需要填写一些基本信息,这里我们假设如下:
      • 域名,也称为 Common Name,因为特殊的证书不一定是域名:example.com
      • 组织或公司名字(Organization):Example, Inc.
      • 部门(Department):可以不填写,这里我们写Web Security
      • 城市(City):Beijing
      • 省份(State / Province):Beijing
      • 国家(Country):CN
      • 加密强度:2048 位,如果你的机器性能强劲,也可以选择 4096 位
      • csr生成:
      openssl req -new -key server.key -out server.csr
      • crt生成
      openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
      • 证书合成
      cat server.key server.crt > server.pem
      • nginx配置
      listen       443 ssl;
      server_name    _;
       
      ssl_certificate      D:/nginx-1.5.11/ssl/lee.crt;
      ssl_certificate_key  D:/nginx-1.5.11/ssl/lee.key;
       
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
       
      ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers  on;
  • Linux配置HTTPS升级

    • 查看nginx是否在运行
    ps -ef|grep nginx
    • 启动nginx
    ./nginx -s reload   //(重启nginx需要切换到sbin目录)
    • 查看nginx是否支持ssl
    ./nginx -v
    //查看是否有‘-with-http-ssl-module’字段
    • 不支持,安装
    make && make install
    ./configure --prefix=/user/local/nginx --with-help_stub_status_module --with-help_ssl_module
    • 安装命令
    sudo apt-get install openssl
    • 复制文件,进入到当前文件目录
    sudo cp -v 源文件 ./
    • 删除文件
    rm
    //提示Permission denied,说明没有权限,使用sudo rm即可
    • 切换权限
    su -
    • linux发送get接口
    wget 接口
    • 编辑文件
    nano 文件目录
    Ctrl+c 保存
    y 退出

error处理

  • 错误提示:(10060)The system cannot find the file specified

    • 原因分析(一):

      • 在网上查找,是因为nginx服务器上的启动操作造成的,因为我是在远程连接上启动的,或许会产生一个会话id,这个id应该是与服务器上启动的id不一致
    • 解决办法:

      • 主要造成的原因应该是在远程桌面上对nginx的启动和终止操作不正当,导致远程服务器不能正常结束特定进程
    • 原因分析(二):(申请证书:jks文件,key文件,crt文件)

      • 可能是证书信息不全面
    • 解决办法如下:

         //失败 
         ssl_certificates  jks;    
         ssl_certificates_key  key;     
         //通了,jks转pem,暂时没有复现崩溃的现象(可以解决火狐问题)
         ssl_certificates    .pem;
         ssl_certificates_key    .key;
         //通了,jks转pem,pem生成crt可key文件,出现崩溃的现象(没有解决火狐问题)
         ssl_certificates    .crt;
         ssl_certificates_key    .key;
         ssl_client_certificate  ca.crt;
         //通了,jks转pem,pem生成crt可key文件,bundle.crt和crt拼成new.crt,出现崩溃的现象(可以解决火狐问题)
         ssl_certificates    new.crt;
         ssl_certificates_key    .key;
         ssl_client_certificate  ca.crt;
    • 原因分析(三):

      • 启动多个线程
    • 解决办法:

      • 关闭所有线程重新启动

      虽然网上有很多例子,可能是自己的原因,需要做好多操作,查询好多内容之后才将正式服务器和测试服务器的HTTPS升级完成,把我的点滴记录下来


傻丫头睡觉
11 声望6 粉丝