http升級https

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

  • Windows配置HTTPS升級

    • 當前沒有SSL安全證書,須要OpenSSL生成一個免費的證書
    • 在nginx的目錄下建立ssl文件,用來存儲證書
    • HTTPS升級須要的證書有crt(CA認證後的證書,Windows下是crt),key(證書使用祕鑰),csr(證書的請求文件,申請證書的)linux

      • 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處理nginx

  • 錯誤提示:(10060)The system cannot find the file specified安全

    • 緣由分析(一):服務器

      • 在網上查找,是由於nginx服務器上的啓動操做形成的,由於我是在遠程鏈接上啓動的,或許會產生一個會話id,這個id應該是與服務器上啓動的id不一致
    • 解決辦法:session

      • 主要形成的緣由應該是在遠程桌面上對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升級完成,把個人點滴記錄下來code

相關文章
相關標籤/搜索