zoukankan      html  css  js  c++  java
  • 安装SSL证书 and 根域名跳转www域名

    1.安装自签证书

    自签证书也就是不被公网认可的证书,可在局域网内进行签名认证,其12306也是自签证书,通过证书+nginx代理web服务器 可以实现https连接

     一.使用OpenSSL创建证书

    建立服务器私钥

    openssl genrsa -des3 -out server.key 1024

    Generating RSA private key, 1024 bit long modulus
    ..................++++++
    .............++++++
    e is 65537 (0x10001)
    Enter pass phrase for server.key:
    140713263834776:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:823:You must type in 4 to 1023 characters
    Enter pass phrase for server.key:
    Verifying - Enter pass phrase for server.key:

    必须输入密码,并要这次验证密码

    二.生成一个证书请求csr文件 

    需要依次输入服务器秘钥,国家,地区,组织,email

    openssl req -new -key server.key -out server.csr

     生成的csr文件交给CA签名后形成服务端自己的证书, 在此说明,common name选项尽量使用域名

     三.去除key文件口令的命令

    openssl rsa -in server.key -out server.key

    四.使用上面的密钥和CSR对证书进行签名

    openssl x509 -req  -days 365 -sha256   -in server.csr -signkey server.key -out servernew.crt

    五.Nginx配置ssl

     server {
                listen 443 ssl;
                server_name myssl.com;
                index index.html index.htm index.php;
                root  /home/wwwroot/myssl;
            autoindex  on;
            include enable-php.conf;  
            access_log  /home/wwwlogs/access.log;
                ssl on;
                ssl_certificate      ssl/servernew002.crt;
                ssl_certificate_key  ssl/server002.key;
                ssl_session_cache    shared:SSL:10m;
                ssl_session_timeout 5m;
                ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
               }
      # http重定向https
      server {
                listen 80;
                server_name myssl.com;
                rewrite ^(.*) https://$server_name$1 permanent;
            }  

     参考: 

    http://blog.csdn.net/ldx891113/article/details/50456273

    http://blog.csdn.net/cangzihu/article/details/53488996

     2.安装Let's Encrypt免费SSL证书

    Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起,主要的目的也是为了推进网站从HTTP向HTTPS过度的进程,目前已经有越来越多的商家加入和赞助支持。

    到目前为止,Let's Encrypt获得IdenTrust交叉签名,这就是说可以应用且支持包括FireFox、Chrome在内的主流浏览器的兼容和支持。

    1.获取letsencrypt git文件 ,并执行生成证书

    git clone https://github.com/letsencrypt/letsencrypt
    cd letsencrypt
    ./letsencrypt-auto certonly --standalone --email service@myssl.com -d myssl.com -d myssl.com

    在执行letsencrypt时会会安装pythonDev环境(第一次),agree and yes

    生成的证书目录在"/etc/letsencrypt/live"下

    进入子目录有4个文件

    cert.pem  - Apache服务器端证书
    chain.pem  - Apache根证书和中继证书
    fullchain.pem  - Nginx所需要ssl_certificate文件
    privkey.pem - 安全证书KEY文件

    2.配置Nginx

    server
        {
            listen 443 ssl;
            server_name myssl.com;
            index index.html index.htm index.php;
            root  /home/wwwroot/myssl;
    
            #error_page   404   /404.html;
            include enable-php.conf;
             if (!-e $request_filename){
                    rewrite ^/(.*) /index.php?r=$1 last;
                }
            autoindex  on;
            ssl on;
            ssl_certificate      /etc/letsencrypt/live/myssl.com/fullchain.pem;
            ssl_certificate_key  /etc/letsencrypt/live/myssl.com/privkey.pem;
            ssl_session_cache    shared:SSL:10m;
            ssl_session_timeout 5m;
            ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
            access_log  /home/wwwlogs/access.log  access;
        }
        
    # http重定向https
    server {
                listen 80;
                server_name myssl.com;
                rewrite ^(.*) https://$server_name$1 permanent;
            }

    3.自动续期

    Let's Encrypt申请的证书会有三个月的有效期

    手动:

    ./letsencrypt-auto certonly --standalone --email service@myssl.com -d myssl.com -d myssl.com

    用crontab进行定时执行续期脚本

     参考: http://www.open-open.com/lib/view/open1456025126839.html

    根域名跳转www域名

     if ($host = 'aaa.com') {
               rewrite ^/(.*)$ https://www.aaa.com/$1 permanent;
           }

     

  • 相关阅读:
    ABBYY Cup 3.0G3. Good Substrings
    Codeforces Beta Round #94 (Div. 1 Only)B. String sam
    hdu5421Victor and String 两端加点的pam
    loj#2059. 「TJOI / HEOI2016」字符串 sam+线段树合并+倍增
    Codeforces Round #349 (Div. 1)E. Forensic Examination
    ACM-ICPC World Finals 2019 G.First of Her Name
    51nod1647 小Z的trie
    LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci 题解
    POJ 2443 Set Operation 题解
    CSP-J 2019游记
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4608051.html
Copyright © 2011-2022 走看看