commit fe0774f04eccbb7661a2551d42ea121b086b562a Author: 加里 Date: Fri Aug 8 16:30:53 2014 +0800 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..07d8c9e --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +.*.swp +._* +.DS_Store +.git +.hg +.lock-wscript +.svn +.wafpickle-* +CVS +npm-debug.log +cert/*/*.srl +cert/*/*.key +cert/*/*.crt + + + +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# Commenting this out is preferred by some people, see +# https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git +node_modules + +# Users Environment Variables +.lock-wscript \ No newline at end of file diff --git a/cert/gen-cer b/cert/gen-cer new file mode 100755 index 0000000..3bd7fe6 --- /dev/null +++ b/cert/gen-cer @@ -0,0 +1,47 @@ +#!/bin/bash + +#Required +domain=$1 +commonname=$domain + +#Change to your company details +country=ZH +state=Shanghai +locality=Shanghai +organization=a.com +organizationalunit=IT +email=a@b.com + +#Optional +password=a + +if [ -z "$domain" ] +then + echo "Argument not present." + echo "Useage $0 [common name]" + + exit 99 +fi + +echo "Generating key request for $domain" + +#Generate a key +# openssl genrsa -out host.key 2048 +# openssl genrsa -des3 -out $domain.key 2048 -noout +openssl genrsa -passout pass:$password -out ./tmpCert/$domain.key 2048 + + +#Remove passphrase from the key. Comment the line out to keep the passphrase +echo "Removing passphrase from key" +openssl rsa -in ./tmpCert/$domain.key -passin pass:$password -out ./tmpCert/$domain.key + +#Create the request +echo "Creating CSR" +openssl req -new -key ./tmpCert/$domain.key -out ./tmpCert/$domain.csr -passin pass:$password \ + -subj "/C=$country/ST=$state/L=$locality/O=$organization/OU=$organizationalunit/CN=$commonname/emailAddress=$email" + +#Generating a Self-Signed Certificate +openssl x509 -req -days 365 -in ./tmpCert/$domain.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out ./tmpCert/$domain.crt +#-signkey ./tmpCert/$domain.key +#openssl x509 -req -in host.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out host.crt -days 365 +echo "Finished" diff --git a/cert/gen-rootCA b/cert/gen-rootCA new file mode 100755 index 0000000..f784592 --- /dev/null +++ b/cert/gen-rootCA @@ -0,0 +1,4 @@ +#!/bin/bash + +openssl genrsa -out rootCA.key 2048 +openssl req -x509 -new -nodes -key rootCA.key -days 36500 -out rootCA.crt \ No newline at end of file diff --git a/cert/rootCA.crt b/cert/rootCA.crt new file mode 100644 index 0000000..cace6a1 --- /dev/null +++ b/cert/rootCA.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDazCCAlOgAwIBAgIJAKjl+p620mNoMA0GCSqGSIb3DQEBBQUAMEsxCzAJBgNV +BAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hhbmdoYWkxCjAI +BgNVBAoMAWExCjAIBgNVBAMMAWEwIBcNMTQwODA4MDM0MTUxWhgPMjExNDA3MTUw +MzQxNTFaMEsxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UE +BwwIU2hhbmdoYWkxCjAIBgNVBAoMAWExCjAIBgNVBAMMAWEwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDadPs2uY219/pjZrIAkxFqOzP/8uRkOBgSakJ8 +Pj2OBkD7rKpUmdhTWquHr1t7UWSgpczhT4/TOnVWlcVo1610JbYfXKiVH+SM+wnT +c6mye/uj0WPb8eHtawNkGl0vYi9HpQMGGybbGxI5rE4BmeBQTWvUD1TKo1tBujbY +JLTlMjZC5wJAxKBsflsZwxUZRc4YXS2Htn8gX2N8u551//vavOb/v4x3xylDIIDh +yJnPyktymCZmFeQPpaPYDok4+XEqf1UrZ37OL5btyCZ48Iwv6oX88wUriUjZJFRe +XdePA0+0njpqL7fcCCGUn9SqrkeXo9B6Gv5rnV2NU9H/DPPZAgMBAAGjUDBOMB0G +A1UdDgQWBBQ7cyGfZrozH5nXke6AVtXkzpiHIjAfBgNVHSMEGDAWgBQ7cyGfZroz +H5nXke6AVtXkzpiHIjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAr +0xnL0Po3qPyS/ggGXWcD2JxJz9wX9W0WB6n/tcBZ/Lkp0kOPerh97huCdkGz4w+2 +P/NLtiwyJp/XvJFORcBHLJo2Hn8BhA5v4etO/L7fl4WH9Y4XvB9FiDsPEYq1sKQq +e5PDxa7VTZ7c2o7BxJmaIb2IgnjflN7iZ7Qk4LT8H34HnckbRlnj+uH8Hdmcm46e +hsDGMQzz5IDxoMzlgK1TQwN2tROcf6FutiytMi5ytWcq7nlXCgTIAVCtCLa/9oM9 +/syJAgiInKlt7QwdekzNbOG2l28jcYDYIzMfBNBC1ID82osEtsWgDSM9HXRQTMMt +Zcc8Xq3GPa+XjPZeJVW9 +-----END CERTIFICATE----- diff --git a/cert/rootCA.key b/cert/rootCA.key new file mode 100644 index 0000000..f7f8dc5 --- /dev/null +++ b/cert/rootCA.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA2nT7NrmNtff6Y2ayAJMRajsz//LkZDgYEmpCfD49jgZA+6yq +VJnYU1qrh69be1FkoKXM4U+P0zp1VpXFaNetdCW2H1yolR/kjPsJ03Opsnv7o9Fj +2/Hh7WsDZBpdL2IvR6UDBhsm2xsSOaxOAZngUE1r1A9UyqNbQbo22CS05TI2QucC +QMSgbH5bGcMVGUXOGF0th7Z/IF9jfLuedf/72rzm/7+Md8cpQyCA4ciZz8pLcpgm +ZhXkD6Wj2A6JOPlxKn9VK2d+zi+W7cgmePCML+qF/PMFK4lI2SRUXl3XjwNPtJ46 +ai+33AghlJ/Uqq5Hl6PQehr+a51djVPR/wzz2QIDAQABAoIBAHwuH1deZwXXrseu +auUUtMOUX9zQr6+gi158dMq3frorJ+lon3Jz+Zp4YiVBM1mITRFc7nftiC5kfqr3 +fD46y+jIPxzYySPr+zmAwncmuoIxJDxdHMy8VNdnC4htzCbRQ1sQnAVujcnjO5r5 +LWaPmAlN2Uu0Y1jFP2y/c8muI/5cXTKIKqxO8K5TOt8xxESIcYQAnqYDrqOa7row +aG1r5wNoh8MAphNdaqYe9AF/RyrSetRlw85gk88/QmWOw4OhJD2AMeIpJ0z/3iga +UxB3V20Z5LdYE8WRXKl6YTmt37akMHjpVoMzGJxw4PD9mbEy42DqpI2FTActlfYb +KFPnxGECgYEA/M2TjLrmZG0meeZ3SWtBSmgxgGiaC5hsG1vpuqjz6wgu3qTGCHh+ +RuTnv6IPFsA8pSu+bNnl4zXN0AnyxnisbGtGNdezqoI/u/oKJ6pGrlonN2xYJHJm +xMl63TW4kLZnQAZzjbQZ6lwxlEJ21rAMcgceEh03Ko/80orBB4DwjpUCgYEA3Tg2 +jFj8CYXL5N3x0hiNYq/eCOjyHen8TxakU3DFZMlEcSOSZAsilL98s6rRoJE9RCfs +baQuVs3PZ7F1gxo0zawhZD+FF2QsI9kJBtsEInCBa/6y2kCfxb/RogK0vgo15fKR +wToC+bchtKfcXhFqNdpPo53s2K25/PWejWxI8zUCgYEAw+3sgnDEaWczH90f7JYk +5y8z1mq7oWsDtnyY/KM/UJRqBwK7vQruC7ITbzGB8kcReY4aqzCB/IPRvIBJWctj +DzBhHQ/NXsRN8zmKL03INA8JP+pHsg+8WJ4zDEk7f2TvRu75FgVU5I+JmXedtSyC +qMmdY7qi6+jmsKL7kf478rUCgYAuQEB3W2tmekjE0vpqGKQGzAo6BqoIQxFzX6J/ +p4Y9qi7bELrcm89hFh/2WHJ3haYvh8FQsxDVKTaB0YJmJKaBkclxci5bU6A+5nOS +sVvN74O/loLCStyctZwYqUQsr2nRZ8O9iGly2Cz93lKegDmahMg9xxjrvHa0Qo4h +t1AROQKBgEI1nK7gnhrzCJdTKCb635T0V1pCzylyXQ1qdwEJBmvb2xAH2JL0DMxN +nw2gh5HMf5EJtIBpUx5hoPfBhNNx97gNw7Hni8YEuPCEgyV7cYhxDst2dh/sOi0A +jvNYpjV9cdYhzuhJn7D295/a0fcWOnp5yiujmTmv+ON23RKVdls2 +-----END RSA PRIVATE KEY----- diff --git a/cert/rootCA.srl b/cert/rootCA.srl new file mode 100644 index 0000000..b6bd7e6 --- /dev/null +++ b/cert/rootCA.srl @@ -0,0 +1 @@ +97D350B826C9E3AF diff --git a/cert/tmpCert/13.99.web1.im.weibo.com.crt b/cert/tmpCert/13.99.web1.im.weibo.com.crt new file mode 100644 index 0000000..6973602 --- /dev/null +++ b/cert/tmpCert/13.99.web1.im.weibo.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUjCCAjoCCQCX01C4JsnjrzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA4MDgxM1oXDTE1MDgwODA4MDgxM1ow +gYoxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEgMB4GA1UEAwwXMTMu +OTkud2ViMS5pbS53ZWliby5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1V4AH+Ts15+Drp8EZoZ98keD5 +AHOYp1U8VrIQaVjek41KSKMWHWYni9YQAUzYxOTHRfviARB1Cc031kunwBGUkVbb +wWBwNwBC7mVwITpkw5EkH5qxMt7WFJU4TTuLbnDeRdX/7p0Y57WBGyH2a2dHoVLj +i2VcnuOBCiRAR1jmSqUR1x7XaeHynTXCvsk3/jqPgJb22T61UP0va37+HFPvQFl8 +hRBArnMzO2dVcB+PwBJlO0iQiyhjJefXQ949vBJJgVpP0GmrXCPp/+4w51dPGSXa +4HCT32iMsGqVnsLkdRBmX3E7NeKKbxNBKyI1Pnv3YJSqOhuPpzKJBmAe0LNlAgMB +AAEwDQYJKoZIhvcNAQEFBQADggEBAIK1sjPxvpoWBH1sEpe3grmpxazpZuxJOLQc +1FwV75fnvU94UfxIb8sg2j/16MZ8o1um3R1+Fn9MmDOdeqHBFzEPBrlTYNDLCq1v +Xx3BSoTws/wBJDkZ2cT6x9S6Setvxxv9MUVg9lJj8nrCu9++qgse+qbVNDbivyxi +Lt6/egsr00SFhiB0zmFDbpIilDRIsvhsSOnpzmUq1nNv5b2WCxZEoz+F/nrv8J/+ +NaTIdJ5+wnjC+QOdHt1ujFDOM/5N/Wa0ZFrXm2yY6JHFynMKOBT6Ecvi/XUP+eH4 +/2RFGOh1BgFgBP0hRdY3RNus1JXLsyP/RS5mGMhXW7E/o5j9jLA= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/13.99.web1.im.weibo.com.csr b/cert/tmpCert/13.99.web1.im.weibo.com.csr new file mode 100644 index 0000000..cff06aa --- /dev/null +++ b/cert/tmpCert/13.99.web1.im.weibo.com.csr @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIC0DCCAbgCAQAwgYoxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEg +MB4GA1UEAwwXMTMuOTkud2ViMS5pbS53ZWliby5jb20xFjAUBgkqhkiG9w0BCQEW +B2FAYi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1V4AH+Ts1 +5+Drp8EZoZ98keD5AHOYp1U8VrIQaVjek41KSKMWHWYni9YQAUzYxOTHRfviARB1 +Cc031kunwBGUkVbbwWBwNwBC7mVwITpkw5EkH5qxMt7WFJU4TTuLbnDeRdX/7p0Y +57WBGyH2a2dHoVLji2VcnuOBCiRAR1jmSqUR1x7XaeHynTXCvsk3/jqPgJb22T61 +UP0va37+HFPvQFl8hRBArnMzO2dVcB+PwBJlO0iQiyhjJefXQ949vBJJgVpP0Gmr +XCPp/+4w51dPGSXa4HCT32iMsGqVnsLkdRBmX3E7NeKKbxNBKyI1Pnv3YJSqOhuP +pzKJBmAe0LNlAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAdoGx2uzY+ofLSlxk +ldjLZMww+4g/htyJNoPUc9bcvV/BFISxS2/PFCeWJ3TG75KINm3ynryAyi30r1VG +Wd0C3Y6BfDvvlJ3Wg/wWvGkkNZghZLDo+OlyQqBFVvL9w3MMaSGVbOVs8k5Qo/2E +zYrLanwDJkppn0rq3ZuRAxGdbQJEFzC2mVnFv9hPbngpO+Vq1BYZRGglwS47LXwf +Tu+z49dJQpPCiRu0du7p4vIT+ZECy3/nCwYE3ZdCbB55D5iw1dezB4D2nGCxABxF +pxv84MCagpI1Y3rMeREbVe4KxfhC8My8AbRqN4PVpx0a7JVBmpzZJLsLLfZ/00Q+ +Skmdow== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/13.99.web1.im.weibo.com.key b/cert/tmpCert/13.99.web1.im.weibo.com.key new file mode 100644 index 0000000..823c0e1 --- /dev/null +++ b/cert/tmpCert/13.99.web1.im.weibo.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAtVeAB/k7Nefg66fBGaGffJHg+QBzmKdVPFayEGlY3pONSkij +Fh1mJ4vWEAFM2MTkx0X74gEQdQnNN9ZLp8ARlJFW28FgcDcAQu5lcCE6ZMORJB+a +sTLe1hSVOE07i25w3kXV/+6dGOe1gRsh9mtnR6FS44tlXJ7jgQokQEdY5kqlEdce +12nh8p01wr7JN/46j4CW9tk+tVD9L2t+/hxT70BZfIUQQK5zMztnVXAfj8ASZTtI +kIsoYyXn10PePbwSSYFaT9Bpq1wj6f/uMOdXTxkl2uBwk99ojLBqlZ7C5HUQZl9x +OzXiim8TQSsiNT5792CUqjobj6cyiQZgHtCzZQIDAQABAoIBAGuD3Vzc38YuHKSb +aVmRAcYRl5kKM38mdtq3bAte6lnMkdChEFBkTdTUi64hlzZORnX/gD+W8fLyRMH+ +RAzJS6MSKLVSCaN+eKE2Rt4cVUq4yKzqMAUva/7xZSdkYxFgAXtHXIHJL0s81dge +BhzbwPgvJb3TP92SNsCjCqsxofum9hKSEOxoeQ3Glaha4+yK82sii3eoz/pNVHa/ +TJC6HyC5ByrinUjTLIR1xPiSAQEgkZa+W3ctf4ilLM2N85vUGqNp/S9bpI4YC19h +wjChJEQUpJaSymnGeukXcMnXiRmeoCElp7iM0Wl6vt58T6qQL+nozlFreWaxyu3S +eDoD+wECgYEA5NupgR5xkZHk2r0mu3yIFjUQZQ6rr9/RsQm/G4eifjPvoiasmmOj +OjbB23okpobmcVAjhEdxZHAYC6ZwZVsLrdJIzI14P95qLqoLoD7nRji/oCJOwRp9 +U7iNfhZZTsXliJ8FCDOliwUdiIJUNOcJ/nVe1kM2PrruXjgL7caTLCkCgYEAytkz +jIzKvR/x8TE7ayIyGNKtZcGsX9njxBUZNSH+mxowCcvzf4n5UdBX9lYpn85+HHmb +NFuYOBN9q12b9q+5C+ufA1cvSgvLeM+01Zk4D/+t9IsjrbRo2YkeRe7nTHnMjddx +iwmkaRVkrCdj4Pq3qamw1hsoQ86WPhpI/lvZdN0CgYEAi/i5dEo9Za4YjZxQmyzw +QrzTuSs+4IOAycnPQ7QyMwPq1X7X5Fl6VLl22Zib3+nz+WvtPRNBDA/u9PkoFyWX +QAm0Er+Xw2ByCvZfw/OVGgLNWNCC4GImMtVWXL6ogqBQ4b14o2qLHjrTtFEZ1X1V +RHdeuKdE/xrvfVrEGPpxuvkCgYEAoHT5qudABCR93L2F8/QDztDwKrrt4JBZ9CSA +YSA353bqowU64xtAJfB5dDmqCWhtJ5cmJ1+A5HK+iMyub4+HAB/tE9ZmaNs1o6Yh +tIjT6QvmDbf2jBRWkCU/1i/ptPvvzA+tGD+TVzB+BxPNlQyeNc4uPN8UlbaX8B4Y +uWPset0CgYEA0NUEPWiPHSWs4Gi1Q/E9zm1LYiXg/ppPw2/L7eOfoAdfo/HbYQdn +s4BiOp9JCYiX7h06W30tcVIHeg/G3imAA37puyN59KUuHkfQwKLmsIWGmlRyVJV9 +OvFa3cml3MsaqnsDnBJs2mcSam1wDlpkrdIRGxDjoIzakq/4d5Jddzo= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/14.99.web1.im.weibo.com.crt b/cert/tmpCert/14.99.web1.im.weibo.com.crt new file mode 100644 index 0000000..c1131a8 --- /dev/null +++ b/cert/tmpCert/14.99.web1.im.weibo.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUjCCAjoCCQCX01C4JsnjrjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA4MDgwM1oXDTE1MDgwODA4MDgwM1ow +gYoxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEgMB4GA1UEAwwXMTQu +OTkud2ViMS5pbS53ZWliby5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5aOtQEf8a9FSIGSIl2sLaQVMc +bvwNDuG+dKAh3Q+mlFNlzj+VbeZ8hwesS+wRUO/oJljyA9bM/x4A6tUXg+iJCkWL +4y2Bg1a/WVU1XpQOAwjUBVILRNj8aHRwVjpzlj7h/O5QW9+29Sv6souyV6aKO2E1 +cmsrKrqFOpAEJZVcimAxiCTkOzYpkYbhJrn2Z4UMdOEw7w65ee9/EcpvddzlEC6s +gyZLYJlIcZJUGiCm5fShKfaz3PJHp5xz9ju0VQiUT7OHu0R3RSj2ZWv+ctSyfv92 +fJpbQtZerDnnEsUixIZlGqLovqWUGvfHL7aabSwBnU85/vt0y+Hqcr4dHVuvAgMB +AAEwDQYJKoZIhvcNAQEFBQADggEBAE+R+eVtNniihUFqAJLl+U8DB3V8+CF/rJAe +e3oA2ysHgEGZdx3GnGtnRRY5j/s+824cvtMrW1+lhc1hLlIbp4TweBRlYOhcLCqT +F+ygyc/XcDqPXsdpAIYqe98WRPunjx+0p2kSEblasV+oVAMdutrOJcr4UFu7bM6G +0TTnqvN9SaPSsYY776ZtEqTfwiUBYuzg1LIiB6afmOITovXzlqC0H9jWZc/0g9x7 +Xv+LIDrFHlj/avRTUQDxxbbEqhyA4A3jfYeL3iwkwPYLB+T1rEOqmiCX2dNaoE8q +Cc3jF1MtimM+AORRwGIm+gYv7OCNfrFS+umQGV6fK+lCKTX8pOQ= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/14.99.web1.im.weibo.com.csr b/cert/tmpCert/14.99.web1.im.weibo.com.csr new file mode 100644 index 0000000..c551786 --- /dev/null +++ b/cert/tmpCert/14.99.web1.im.weibo.com.csr @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIC0DCCAbgCAQAwgYoxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEg +MB4GA1UEAwwXMTQuOTkud2ViMS5pbS53ZWliby5jb20xFjAUBgkqhkiG9w0BCQEW +B2FAYi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5aOtQEf8a +9FSIGSIl2sLaQVMcbvwNDuG+dKAh3Q+mlFNlzj+VbeZ8hwesS+wRUO/oJljyA9bM +/x4A6tUXg+iJCkWL4y2Bg1a/WVU1XpQOAwjUBVILRNj8aHRwVjpzlj7h/O5QW9+2 +9Sv6souyV6aKO2E1cmsrKrqFOpAEJZVcimAxiCTkOzYpkYbhJrn2Z4UMdOEw7w65 +ee9/EcpvddzlEC6sgyZLYJlIcZJUGiCm5fShKfaz3PJHp5xz9ju0VQiUT7OHu0R3 +RSj2ZWv+ctSyfv92fJpbQtZerDnnEsUixIZlGqLovqWUGvfHL7aabSwBnU85/vt0 +y+Hqcr4dHVuvAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEApTJ2dwsxPyHjP+0Q +9fbbloi2PH94r3MmP2nnqxCfQedGtKludPgQErRvz7ygiX2RD244yKQEqYKH8ppf +80uU7tUAJ179dQ3ds98DK28asvyfqFOZHvfbWD4kE8Jq/IPOjiquG/BtZa4luxIc +dSI4PeAGlR8uYHIwL4kvWdNuy39uR0gpu0gmcvKO/XBj4n4BUE33ktqsoa1H+/9i +b7dl94CGw9BT2apARytysrtKB7gGzS1xwB8D9KuIJznutcjbWONULuU0mCFZsNt5 +6gE/uQ2I3wdbddkPR+khrtXdd4vxMxH5/65/J7v5HeY+bGUi4j4s6J9ybxPUqRHI +ujBs9w== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/14.99.web1.im.weibo.com.key b/cert/tmpCert/14.99.web1.im.weibo.com.key new file mode 100644 index 0000000..970e1f3 --- /dev/null +++ b/cert/tmpCert/14.99.web1.im.weibo.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAuWjrUBH/GvRUiBkiJdrC2kFTHG78DQ7hvnSgId0PppRTZc4/ +lW3mfIcHrEvsEVDv6CZY8gPWzP8eAOrVF4PoiQpFi+MtgYNWv1lVNV6UDgMI1AVS +C0TY/Gh0cFY6c5Y+4fzuUFvftvUr+rKLslemijthNXJrKyq6hTqQBCWVXIpgMYgk +5Ds2KZGG4Sa59meFDHThMO8OuXnvfxHKb3Xc5RAurIMmS2CZSHGSVBogpuX0oSn2 +s9zyR6ecc/Y7tFUIlE+zh7tEd0Uo9mVr/nLUsn7/dnyaW0LWXqw55xLFIsSGZRqi +6L6llBr3xy+2mm0sAZ1POf77dMvh6nK+HR1brwIDAQABAoIBAFEKwUBgfWdkwMY0 +Zi6xrlYEE7Xr9RQoGxhKlev3Wm3vi3yGaFiCjyqDQyFWljsDa7nHeT1f3DYClTTF +cJs0tyGfccKxbCSeKf69p3cKfiCZxvQV10TBtS6u4aZwql/3nkjda7WIUwL/q1eL +T3CGy27EgbsA5kMaDClL7cNCQkUOIClmvfiU+XkbZx//FHolhefTWYx3rddCou1D +ZvJdOwMey77Nmc+M13G6YDy46ZAsez9rrxl1hu9EbEzWrGyBg3EdaoS1/VHxeZaL +9+KjhMWZkuXwPbvLzMRffU/j1p2wTD2ijLRYyySYFszn5vZ1JCpugqTBV60nGh3R +akyZVpECgYEA55ZVnOlPXal6a8b+QcRKUKong8ig6uLfbc2wrcfO9gmrHyAV82gb +CYIbEmkVnWgiH6WbGPPkem/ltjGlpwvcs2eED4Sfq7knH0tntvewJcw7oYhZ/Ehc +abT5LRIAeq8cmvHOnXNRKlxmaos4+HtiE7YAfuRMboU1ydWFO6Db3xsCgYEAzPRu +Urk/AompnJUEhaAkdfMC8iIbCY5a7e9OvHsAs/x/eEWnaCPcNQtm8Ydz6isISsTW +5CNpjJ9WRR6YWUpHLnSoE3OLZOkYe7xHTkRgEDW5mDzJIOgLQaPjZn2WyA1SpYfK +ZpekSRsvr8ZHiAiFoQfCX708537n3wWUKOdtev0CgYAnqJf6qf2cZYSAZnBuJMYx +MCJaMAZWkwl+DUZfTCNGAPvb9auspjxTEYO/UF2SOh31229HA6Uxzm3BGJlslNxz +oJt96NFLIAbyFgCp1ZrFrkbb77SxPlcNBx/Qtw978vbsFdKzJedVYMNtJXBZJQ/z +nixRjpkEKC3A5Z7OSkq81wKBgQCRI3+E4V43o9kS44xiPHfVdxPc+D4BVGgcGt29 +J7Xlv6ddOqZEXzCv97Uc0XlKmNK0cBRlVpaGWMe1BueIQ8uIoF/t9mL+QPtvlHNC +f7UvhXw6zMD5ppliEHcWu1UtshGW20R/xl82ziPE7Dr3oGFRGbeSKOaaYQo+qyqy +lMC42QKBgQCzq6ur4inu00arOzPah64wkOvrTrl77SnO19in/KluLT2CxGCWcRFF +zrOEmIH6+cyjvAHxnDX6BBE0LVGa2Rj4z4f+cu46HzQ8p+x2vWEDgKwIPq7J2e5m +Ad/tTHw7dqvTU048yEkAkdVVVR92BvoXWavewfBtQCawAUjdGTz30A== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/a.alipayobjects.com.crt b/cert/tmpCert/a.alipayobjects.com.crt new file mode 100644 index 0000000..08c4555 --- /dev/null +++ b/cert/tmpCert/a.alipayobjects.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjhjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA1NDAxOFoXDTE1MDgwODA1NDAxOFow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTYS5h +bGlwYXlvYmplY3RzLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBANKx6KxakLKJ++MELenYiJw3rfpyl35v +t+YSuFbo55LU3WaeSH0ZJwCEI3zDvUxHmpHS4ow6Oxhe5s5k36ZF8AXEneaeNhIf +urz2dn3yQH2QmVclgfQzdXTsIyPBXXBeXa9oG+HdH2S8jxUCEqjD1ZioOMH1VWFd +5eN+zZSHpEMWvp2XVPdOccCHTpokIAKuRLMmC+eVZypvcdAWMFmGTH+5dgZy+7UA +pWjX0qlWAhI9caF3ukhTzhrGeZxlVhUAlK68XPss6Y6/QMg2+PfvSQm2kceeuKcO +ER8BSUoCA0dNUSU7zrVk+S6Ibz4LoKwsOkOb7X6ymTV0WSdywtKdk6ECAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEACBue/Wmp/P8fpz1s+t+FwH1qgm7Qkxx/Zkprxcgh +SR1TqJh1mvVRG6wH1BUtCNLwlFR9qMcy9byGkdyAPufB1kBWBlL+fUaqwAoLgh4a +68s1lugz7HDuqIRffbbmX9DAQlp+r33PYmc5nKniQ791zdzGdLuc+mnoVFJmr/se +ZmT6b/wRDbLF/mSo0yPMevl0n9BsiUNvY83a0/uqh4fOg+Bg+V3tD6dpI44U4RdP +97a4iQapyEYwu1ZvCJjXaZIamrYXm3fHqQ4NUcubxdCwS3YgzkHeivVB/avr7xeb +EBLminvmLMLe+F1HyTQ6RYg9SF/vwEewhJf4XS2b8FMkEg== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/a.alipayobjects.com.csr b/cert/tmpCert/a.alipayobjects.com.csr new file mode 100644 index 0000000..dd1afe9 --- /dev/null +++ b/cert/tmpCert/a.alipayobjects.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTYS5hbGlwYXlvYmplY3RzLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANKx6KxakLKJ++ME +LenYiJw3rfpyl35vt+YSuFbo55LU3WaeSH0ZJwCEI3zDvUxHmpHS4ow6Oxhe5s5k +36ZF8AXEneaeNhIfurz2dn3yQH2QmVclgfQzdXTsIyPBXXBeXa9oG+HdH2S8jxUC +EqjD1ZioOMH1VWFd5eN+zZSHpEMWvp2XVPdOccCHTpokIAKuRLMmC+eVZypvcdAW +MFmGTH+5dgZy+7UApWjX0qlWAhI9caF3ukhTzhrGeZxlVhUAlK68XPss6Y6/QMg2 ++PfvSQm2kceeuKcOER8BSUoCA0dNUSU7zrVk+S6Ibz4LoKwsOkOb7X6ymTV0WSdy +wtKdk6ECAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQCnz6m7ccmqIl3dBqPkIWro +IV4JOU1VXMsFXDdKKJUT0jW0v+sD1Uzti8qUV/OT0AJrzsEKpSDRdNNTsB2LnBfg +d512irsGJCbODSyV2pzEl0HNR8J9NuSKMIEtG8RXavlQ4ik9QWY0AN4bIomzL3L8 +3E0HvKPUDicyc0fjr49I9zgm6AFgGwY9zGUk+Er+upypTFoddN3yQEUI2Fr6jCSG +e4k4vc/vPh850CACWRw5BPfsLZ9i/gVX4FR0LDdIK/82cHJ7O4zy++bAPVuo6pqb +PphEkhj+Z9jeLgI1YtYrKfG8V/uj4zmkl4LoLFDowun1caTEx0wYfTHgofzymDiY +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/a.alipayobjects.com.key b/cert/tmpCert/a.alipayobjects.com.key new file mode 100644 index 0000000..e84686f --- /dev/null +++ b/cert/tmpCert/a.alipayobjects.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEA0rHorFqQson74wQt6diInDet+nKXfm+35hK4VujnktTdZp5I +fRknAIQjfMO9TEeakdLijDo7GF7mzmTfpkXwBcSd5p42Eh+6vPZ2ffJAfZCZVyWB +9DN1dOwjI8FdcF5dr2gb4d0fZLyPFQISqMPVmKg4wfVVYV3l437NlIekQxa+nZdU +905xwIdOmiQgAq5EsyYL55VnKm9x0BYwWYZMf7l2BnL7tQClaNfSqVYCEj1xoXe6 +SFPOGsZ5nGVWFQCUrrxc+yzpjr9AyDb49+9JCbaRx564pw4RHwFJSgIDR01RJTvO +tWT5LohvPgugrCw6Q5vtfrKZNXRZJ3LC0p2ToQIDAQABAoIBACYzD0ZAXT+heMOd +/F0LXylDhw2DPSg1RRg3iKhpLaMXaNS0GdxkdQfI7U4vhuCPktyhaWWXISO4AQym +iU3yHCRPk3k+cfszOX4NCUqoYzzgvIxqRndp5P+/2FchNbmrwjyNGZEHsCtpbF+Y +sp1adB1rUm8H9eTjS0zFrqwhM4zd/JXwdqqjfxDh9UwyJLyaejxEs58349LBHF+E +KG3i+gCww2kD5duyWDym/0QLumt3ZMBPYpPC7w7a+GsJ5eq5whSwKKajKJ1EyLn0 +8DAw3h2jNORN7NN1PxsXdjHRtNo6nprflq4SyHgJTIGWGb9VOQtu5wZYqeB4ISCc +dqlv1kkCgYEA6bFzcMW1/dhc/QFuwImic0iZZhPBBglE3Z4ofnlZY4vzn2pyFnsQ +Y7HwRqiJ+VQUguM6gPphIza23j94wB2Z/6+MIruhvA+YP178zjfRnevWONt0jstc +QFL9z7ppgYt8miGZVooe+JsEai/Zep4EKb58Ap47rwgYn7Jpt5LAzcsCgYEA5s54 +riJ3n87OXCZ854lD3E1QXd5Em4DOjn5cAeTBfO6K2GyIZVfAr7Pnl3xb3B5Xdyx2 +IIvABMguTYqi4XKEVxD6xD/keiUxTeFp3WwGF2RX/3o3UybtyQiLGH5noLePi1Tb +GYzBZsTb9J5zDqBXXqD2U00PGu5cKf5JetAINsMCgYAgYoD27c8soGEyhpJMiEZE +55iqdq5XIc2zUImYDUT/8JMQUnYA+4jn5+6+O/jy3l4BTW/8E7aGZLyuy+j15qRC +tJcc8ReWsiqNDaLHCSE5W0dSlcbvSus71sRplxGr7CKWUXWocnecSA8yj/L5dRBq +oIUa78ahmOOgrd7Mm7+wRQKBgH185MBInSGWHzya8G4yg2LT5k4i+spRTfzLVtrw +tQJn77WbzMzM2UauWcxTIN6c4JE66z7mvI/dBs/CAKzyxmFQKgdpdZ+zeQsO87Af +e3BcbjvJByt+juouavH2SAFpy/HFQRqzHLPzdGObgpMBOn+IpGTGEOBjmFh8mRbc +5JphAoGAOOcRYff7YpVC0cPTZ18EI5P2kDZ3fkdkiY9/rR7vHmGlksOAyIu+IKC7 +aklDIxDxBFkLvUaIRrJqbMmWMvc8Btmos7PrX+iU9eikPg0566QBHQ8EsmjkutTD +CPI/l+RQy0BSfcMTkHjJuJRBVbm4qg8zmpjZyuMkwMrPtXAyRWM= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/accounts.google.com.crt b/cert/tmpCert/accounts.google.com.crt new file mode 100644 index 0000000..174d1c3 --- /dev/null +++ b/cert/tmpCert/accounts.google.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjrTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MzgzN1oXDTE1MDgwODA3MzgzN1ow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTYWNj +b3VudHMuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKuVmaTRUmcl4PK8TRbO+HD3czU1/xEL +Ek6ab/Et/qCMwETk5Rpc2R4fCwEScAz6oMcvlvEMe4Fa64eNfAomiAJZq1Y9izQD +XK++N66hZZEdp1ea+013m9j2iAVqvOu/5zKJodFUPOaxw7B18xffoVsTckN6+GfE +JOag5kxuRlwxKlo/GBjso954+6k1g+jl4u1k8VOMnGlgsHzA7Wtw/O6qbNcGTP/r +FCalGBjOgx+hQxTn78Sd5oQQ2YeHFAA7oEnUOFHRe0yIMrpM3jDXsM3Q4V5GHJEk +3uOUDaBvH4KOrksoo+0cLU8HwEgEGgvSy86y5YOVB3B9fVXLCR+pcCcCAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEAbwg/vMA5mON26/UMUQDVLVFqamxvqwuaHwdMpn/3 +v1Uk80zDZPOy6YrFmrHGxpny+lW8lZBnZnvyMMyVQaRq7JmN0hM7/Rwc+O1PQGUx +oXh9ERguGVYjhlw6VFMUY12yo3ue9tL6AJLqdjzdjw9lrZFgQh3QZeaqu95GHiPy +FMAVkvZPe29Cpbf4Bqo28L1s4oM2ziF/lBwdu9YPLIYgJ1DRIOGLUv0yOSyVHYG/ +S5PGqTg0JWZxve+CelWxYCveajZeGlK6/EwN4WwS753eEeCNkRz1PPRiMn7rd3i3 +1PX4FKbtr1UOMbZxKQAv6/P0WoiUpud5NnI8Iz+gNS1onw== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/accounts.google.com.csr b/cert/tmpCert/accounts.google.com.csr new file mode 100644 index 0000000..873132b --- /dev/null +++ b/cert/tmpCert/accounts.google.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTYWNjb3VudHMuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKuVmaTRUmcl4PK8 +TRbO+HD3czU1/xELEk6ab/Et/qCMwETk5Rpc2R4fCwEScAz6oMcvlvEMe4Fa64eN +fAomiAJZq1Y9izQDXK++N66hZZEdp1ea+013m9j2iAVqvOu/5zKJodFUPOaxw7B1 +8xffoVsTckN6+GfEJOag5kxuRlwxKlo/GBjso954+6k1g+jl4u1k8VOMnGlgsHzA +7Wtw/O6qbNcGTP/rFCalGBjOgx+hQxTn78Sd5oQQ2YeHFAA7oEnUOFHRe0yIMrpM +3jDXsM3Q4V5GHJEk3uOUDaBvH4KOrksoo+0cLU8HwEgEGgvSy86y5YOVB3B9fVXL +CR+pcCcCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQBPNQMC3FAsuPmbcOuNWqTy +v5ZYs/cozJVnG6HePauqNkjwZXn+eMYlggoqPAOdmhnZn46tyglefp4qmTf3YxHr +5LRNQbu8muShWCAIkgZLY8KHh8xAuM3Quog0gTYYgelDDVGoop6wmpnmbcZmIcbA +7tDrSKv3lryWmkl4b1D5YdwkIch52mQBew3LflX8dNG10K4K6xe54Ez1eKvryeS4 +6k0B8F0ibJ5iHPVB+hosx09ieDLTXtfNOLvfYbnSh0Y1tMmj74Itlcj/Ex4McyrV +K4bExGroshVgnMfNa1xKLvEcFbQNg2tDGFaxe/i0MJPGfTF8RH96Bj/3e7e2FaWE +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/accounts.google.com.key b/cert/tmpCert/accounts.google.com.key new file mode 100644 index 0000000..636257c --- /dev/null +++ b/cert/tmpCert/accounts.google.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAq5WZpNFSZyXg8rxNFs74cPdzNTX/EQsSTppv8S3+oIzAROTl +GlzZHh8LARJwDPqgxy+W8Qx7gVrrh418CiaIAlmrVj2LNANcr743rqFlkR2nV5r7 +TXeb2PaIBWq867/nMomh0VQ85rHDsHXzF9+hWxNyQ3r4Z8Qk5qDmTG5GXDEqWj8Y +GOyj3nj7qTWD6OXi7WTxU4ycaWCwfMDta3D87qps1wZM/+sUJqUYGM6DH6FDFOfv +xJ3mhBDZh4cUADugSdQ4UdF7TIgyukzeMNewzdDhXkYckSTe45QNoG8fgo6uSyij +7RwtTwfASAQaC9LLzrLlg5UHcH19VcsJH6lwJwIDAQABAoIBAQCW3/3xEmpt7r3F +U1RJ2QZWdw/j2y4Es4KOgXgrT7FVRU6PheH6c2gq90r6z1ad4wfa/fqwzLQRA3yV +fhBy8Hyp7GUfeRBdVRN8KTvXH24q0zNhchLFhIYSmnzynm+usNi/9IvIgFTo2ajk +EmMGPAsrBYd01L12qN91uEepL1JJHzUMUUeBkTRqsrmCE3OFFoQEFfNIP6x2utsQ +ZhnkYLJ+mo54eCXC4nLsiXzIb8OgvO2klqQyWfBcPmsQl8vVWoijpT1LDpL0hAZH +QcLd+mb+/PQFaa7Lq6ZVnZPMjx88wJF1stqyhrMDHFG+U97zgE3komL7oue7DOjq +ucMg+rmxAoGBAN55MSuOa/1Uv2aJ2bJDjksQupmXtZSUHB7It2VlINN6VH+SVqx7 +MebqIqVIGySmmtRqAi6Abq8nZ+AZ2ebhfNvSC+hrzHbynq1ibZLE1ufb30E2SbOx +OTDjSW3D92nIOsCvthFED0vD4w+ijsrx63pfv01UXTb4NmcwscPuaRafAoGBAMVx +KKHbUbwdbs7JBYO3Lro61/f0njSGoLNBW18nHgs0foZ2ijin5+pn0PqputYbl0T1 +20xvy2SqEtoq33LVWxFLFqGXnMyTs/XRc1zIptqXxeP4v0lJtYS1TOWos3y5WNF4 ++TJpEvgYA3rFWyoZXo7oNqUNyizaeAPLjjGjZOF5AoGBAKeMZGCmUWQoCEIkPYTI +5ghYn//+xq0QYqE4jw5Y/EDo12yAfLBH08xRtyf9RxvyMZcaA2ycIz/ckJmxPm9o +kM1IwtkXHpTSonh4MYegoS1bZSdKyHUBWs4bzvhQ5yuOtdjaPGeCd3abH41t4tar +Hao7I+sMR2uXwfkzLh4elpyHAoGAeyAPC6h+dwYPxMpdMv94F1B8v7b/NZhC/KYk +OdlmBezNfkLL/XrPyEDHdJmF1uFL2whKoocQ2oyoxv53a+AbM1SVH14xvO3bCs97 +1n+WdbiyAnFrsGNT3BdHhexHSd83wSFknYgi+S3YdaY/LKi3a/zpntJTotb2gr9c +xB212lkCgYEAjh/D1gFJX+atOxf0KUdTMxegv6T3yry9bMgGOmAxgok840ATeCw+ ++4XI16+g4QDyp3TimEp9mddBB2Ym8J2OoxD8VYaxlB1LruUDQUzWo9mJzLYNr6q0 +xjxqqiIW6XQIfrSfOVMBUED8e+DLHQZBHC9mhEn0u+hDvsRGmvh8XPM= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/acjs.aliyun.com.crt b/cert/tmpCert/acjs.aliyun.com.crt new file mode 100644 index 0000000..47d2a4f --- /dev/null +++ b/cert/tmpCert/acjs.aliyun.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSjCCAjICCQCX01C4JsnjnTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2NDIwNVoXDTE1MDgwODA2NDIwNVow +gYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPYWNq +cy5hbGl5dW4uY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuxQVvlCumblcM04RBfsRs6KheocdKbR9IPxH +VeMfi6Md0zP8He3uXjcRBgQq0s0ZG18WhEu62u099mjWtHF4XGx6Z9mswmXQYLcd +62cV9aZncLqenToz9NaQ7y2YlYpUOgFODGTs9OIZw55Fs5xBYMkoOrlTmb9h/00P +lSXJrpK5VMfba4S+6Eksnc7XJfLQT+UrrYCg4urnBYyoSe/O73HOHKiWa4ZB+pAE +VtqP+/S1IhFapzzNkL9I1LdrGBtMEMaNMTKG4O1MQ0BzkRG9pJT+cG8zCLiiVg0H +zBd0DMbXP095UBp5imJ039NVVtaV0InhaDstUNbnpndISJviMwIDAQABMA0GCSqG +SIb3DQEBBQUAA4IBAQCDu7IGrZjnq1YK+BC/UMlav1w9PjnbpBhpUtoybHDnuKlh +tcRynG2htnG1v8VNTJ/YGeUDFXiC3h3/JD/hzB+GXvPbPY5+v5EGexuVrpDJmoqd +9sT/e0mcfWFBKbdJdoFcw4ZtJ6JvHSp9iRpCxBMoNhmS6186JblfadT2rRaYG5eU +gVWG21tu2q9WcuoTDPxrPcvG3pdtL4iFomsF9YSLHQ24E04KLbaQLkXiwrAqO6iJ +o9d+H179uQiDRqSjyU9cyYDfro4xkX94zXOrfSpiUuxLNEfmD6b2mdPQZh9nE0Dw +gL/IN2b/4A+qmNFExddv8IsS4yEDljuAZoYUDITa +-----END CERTIFICATE----- diff --git a/cert/tmpCert/acjs.aliyun.com.csr b/cert/tmpCert/acjs.aliyun.com.csr new file mode 100644 index 0000000..33c4b11 --- /dev/null +++ b/cert/tmpCert/acjs.aliyun.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEY +MBYGA1UEAwwPYWNqcy5hbGl5dW4uY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuxQVvlCumblcM04RBfsR +s6KheocdKbR9IPxHVeMfi6Md0zP8He3uXjcRBgQq0s0ZG18WhEu62u099mjWtHF4 +XGx6Z9mswmXQYLcd62cV9aZncLqenToz9NaQ7y2YlYpUOgFODGTs9OIZw55Fs5xB +YMkoOrlTmb9h/00PlSXJrpK5VMfba4S+6Eksnc7XJfLQT+UrrYCg4urnBYyoSe/O +73HOHKiWa4ZB+pAEVtqP+/S1IhFapzzNkL9I1LdrGBtMEMaNMTKG4O1MQ0BzkRG9 +pJT+cG8zCLiiVg0HzBd0DMbXP095UBp5imJ039NVVtaV0InhaDstUNbnpndISJvi +MwIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBABsm79c2gKfze9RNZF93LrBy+noI +v/C6r28FOGenb65AQXkdpxG13g2ju3/jfgfT7wny7dBaBKWN9C34h6nTsYU9WziH +7OO/kI/sLHODWO2H49lqtRwuOyB+NTIatBOwxemq5iTmqXKG+oa9ESQ0uVXOKoYK +Yz5hfpz/sqjplv/3Hjzyh2CPVChV2hiSUE1fum0Qy9kFCMiAJOyxtXgbldgEL4iQ +nm9GEP2texwt1YClZpWHZ5A0KYsE8KgwB53iRoYOX2/TLsvmp8HI+jMeFdbPCQbF +gwvr954BJ9HiFIoPpaYnDEMHVEILv2YE8Pd/3vE3Bq+F7ItyWS7+wKxahno= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/acjs.aliyun.com.key b/cert/tmpCert/acjs.aliyun.com.key new file mode 100644 index 0000000..b4b20f4 --- /dev/null +++ b/cert/tmpCert/acjs.aliyun.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAuxQVvlCumblcM04RBfsRs6KheocdKbR9IPxHVeMfi6Md0zP8 +He3uXjcRBgQq0s0ZG18WhEu62u099mjWtHF4XGx6Z9mswmXQYLcd62cV9aZncLqe +nToz9NaQ7y2YlYpUOgFODGTs9OIZw55Fs5xBYMkoOrlTmb9h/00PlSXJrpK5VMfb +a4S+6Eksnc7XJfLQT+UrrYCg4urnBYyoSe/O73HOHKiWa4ZB+pAEVtqP+/S1IhFa +pzzNkL9I1LdrGBtMEMaNMTKG4O1MQ0BzkRG9pJT+cG8zCLiiVg0HzBd0DMbXP095 +UBp5imJ039NVVtaV0InhaDstUNbnpndISJviMwIDAQABAoIBAQCfDLZntWScITE4 +FTj34rrsBGpRJ6otmNuBPbrQVGavayCiPWItd+neg+afPM/DpMehs7gLBe94zZaO +dheEFayEt11iCXiNVc5RS53OUzgiPzVWa/MKLT+a+wkBr7w39wEgx5c5hlzG3auV +2mvcBg63YI4pTwK6hjGkwjlrTlMnbPaYBtIHRyBOvnmcKl4EidTT0kRYnLQXlBfs +mlEyuiOZEmUp4PHaBH4XAtlMJig7X/VS6LlgTp6dG2/RTR8/5Kiq+VSqqHkun2WW +8U7mBYO7po5w2lRxoC8GmJEN9FzbnOlNJSm5bnvUywESW8ZjpGglInvqFTT5MQ/w +nHBddihxAoGBAOASGEzlObsgg04AFcyFcgu3KmguZ/fAZ/2vP+ucgs2mLv3yRPeZ +pTitvaoqqG3mdFms6rfszAfU4Va3mP3GndcxVFO9M/T3/+p+molXCttNXFfIMv7v +Sbk4eGr0rXjiBkgfThhNCMRBvlZZ3G74Iyhsb/o6FKgvj037r+/GjjKNAoGBANW8 +i6eQg+W7hS0uI6mDFttgx/Ve/BRJuHV1fukcfRpW4RqiDwbH/8hc3uvqt3KCaPxw +IijD8S1VV/bHR2O/beM3tTJLeWuRWilv7ev1EdtqevpMomYpdMnlgEm0esZuQbCS +vR47WgVTDGz5TXLpQphObimddmMZzwr4eJckP5e/AoGAfGLvJHi3hJ625Wz8rO2D +cud6Xh0s0Ab6c4R+ym+22Sygt45vJLghVQZ13GoT1/ZvrnxkTDfix5IwiXAgOPiy +FIyo0Fee6SVm5qjjZsxwFW+rjHtxe74gQfcMOeucBRgL/quKMclJzZDldZAq41tS +QRV5UAJAB2FnfxXyA/xIYd0CgYApdFtF0bKzUQ6Ad8106Db7r6a4wYZ0zOOY7IQD +5IGjJSydxMbTUuEaVGDsMucHr6F7LKiDbZWObFoWRApln1BJ3JkpOxg+s79gABSO +Skb/XoShnVF2LR44tmmOYhHaALJ+88b4YRyRoczsKeJKolFHRxb4vVCj4fKVNyH0 +dpRa8wKBgGEIjdN0XzLT3OoytxjIdzGQ5Dcdz4wFizGdpvQ8ejvw09biF5TjKHzB +7FVmR4STu3lmFnPmuX8WrQCff4KJP7QlqFrjMQded4GlivFh3DI4EeaIQqIVqL66 +chXGtj9YA7ysqnV5DuR4lDs92tTsK6DuIvmYb0MDraEfFaSAvQXY +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/ajax.googleapis.com.crt b/cert/tmpCert/ajax.googleapis.com.crt new file mode 100644 index 0000000..c90747a --- /dev/null +++ b/cert/tmpCert/ajax.googleapis.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjqjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjUzMFoXDTE1MDgwODA3MjUzMFow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTYWph +eC5nb29nbGVhcGlzLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALpJ3/GDyOImcAeEWlCPVdlFJm95QrPV +FWFENED1eFsPT0y1fIM3KOWn4SNtw7Qcn3O8OauA0UIpsmMhcnr68JykitiLEbhg +2vo+5KtrrXydOmT4KrcL0GNIWUhiyD0usxZYhZJfSjd5HOlVwjwr7RjcXHt27U56 +0I8nV3/9YQDZsyBodBuL65N8l8Gu8Lch+pjASBAwyldMKU4Ilbsn4PNKnlGiA4fE +Tx/3i5nLh5p5+NGeAgsEiNUki1ss+/0KUyo1/bwkp2dFDPXdXWlaJLUYzfXicBFt +6E6ujcEiB41QeLd/rVg20Feo22vPiYkfrY3KgnMJ3byZpSdRYoG9FZcCAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEAbsWV55+Cb6/8Z+xjq5+PKFmweUjoWrUed8etwVP5 +RvG3dww91Yp+6TC0HlBd9bJfGS5szs4LEdUsLwDXLP9wGgTGFuecI/fDI/1TY66F +LBbZZwGq2HLKN91me0+TaBeCiJ5dfWc0fC1+rLGJsKO37RNc9ZA70koIX88hDNTk +zwKuNTvNbfaX9OwhFKz0y47oiMvSxyviMFtdYddwvFg6aFo5gPOjX640yM+GqZZh +2Xd2JIl8s9GxrT8VClMvY5UEDj5WCSY+e3mIqvOkFfQH7VX+IQaedRtjYkiSphHe +kbFqKJmCm20bdqo628Trfd+eose3gft5QpuKz4vMaZGSjw== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/ajax.googleapis.com.csr b/cert/tmpCert/ajax.googleapis.com.csr new file mode 100644 index 0000000..c22d2f0 --- /dev/null +++ b/cert/tmpCert/ajax.googleapis.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTYWpheC5nb29nbGVhcGlzLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpJ3/GDyOImcAeE +WlCPVdlFJm95QrPVFWFENED1eFsPT0y1fIM3KOWn4SNtw7Qcn3O8OauA0UIpsmMh +cnr68JykitiLEbhg2vo+5KtrrXydOmT4KrcL0GNIWUhiyD0usxZYhZJfSjd5HOlV +wjwr7RjcXHt27U560I8nV3/9YQDZsyBodBuL65N8l8Gu8Lch+pjASBAwyldMKU4I +lbsn4PNKnlGiA4fETx/3i5nLh5p5+NGeAgsEiNUki1ss+/0KUyo1/bwkp2dFDPXd +XWlaJLUYzfXicBFt6E6ujcEiB41QeLd/rVg20Feo22vPiYkfrY3KgnMJ3byZpSdR +YoG9FZcCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQBo1QUYa5SOkq2xN1QoSaQB +G0he3wX0qTdDH8Dm04hB0ZVnjeqqG6VCL5yGUl/l5XLKdaj2jBt2fuB1EQX0YODI +ys6ELfQcMlTYwRF6aCfIe6uIrtdc3CN9BeX7SQOy7zugo1mAx8vbkjIwniwZXSUP +OYs8+TWHcCh2TZYVHYzc7Ngh9nMm/ihFxxR58/zJqUCdnQOPOxpz1bVHGaWNJ0Wu +5gU/T65D167Kw949C/2c4046BSv7BQOaKUCW7wnbCvTQ/8UcHSiRavHTohkb9o+Z +hKzTJTYl7bIqqNccsa4mc7rPAFOMNhd/O1KvbZWCQS6WoyeUrVzBMd28pCTQVHfJ +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/ajax.googleapis.com.key b/cert/tmpCert/ajax.googleapis.com.key new file mode 100644 index 0000000..cd9d570 --- /dev/null +++ b/cert/tmpCert/ajax.googleapis.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAuknf8YPI4iZwB4RaUI9V2UUmb3lCs9UVYUQ0QPV4Ww9PTLV8 +gzco5afhI23DtByfc7w5q4DRQimyYyFyevrwnKSK2IsRuGDa+j7kq2utfJ06ZPgq +twvQY0hZSGLIPS6zFliFkl9KN3kc6VXCPCvtGNxce3btTnrQjydXf/1hANmzIGh0 +G4vrk3yXwa7wtyH6mMBIEDDKV0wpTgiVuyfg80qeUaIDh8RPH/eLmcuHmnn40Z4C +CwSI1SSLWyz7/QpTKjX9vCSnZ0UM9d1daVoktRjN9eJwEW3oTq6NwSIHjVB4t3+t +WDbQV6jba8+JiR+tjcqCcwndvJmlJ1Figb0VlwIDAQABAoIBAQCEO5wzG5CktxQe +wdw6AwS1TViTGEg4zrB2cquE0Lm2KY/oq4rOuYDWQ+yT8X5Rg1/MD3gAPVhM1rxB +kaRpl2bkSggk3dKeRmIp8CrxY2WqZxDkSyRG+qPZVanKsBPjGhsVaZCm7e0Io3fa +SX2uqJ+MXh9npGueoZ8Zfpulxn3s02VDumcPLbRB2DSrQf/rM7ymSX/55LpWHflu +NQ5gHJ9NDf2COGt6fV7jPQxTL71eYT/8WgU7CjuUVqlqQ8yIs//DKPOKH/96v+ix +tUVdabVAn9XrmFUlFmHomArUj3nWQSVe+jW3aQDrPD3xsij+nErk9G7+ZTE0et0l +EZWRPjiBAoGBANqCWV3YdPYD3BcfsEkMjVhpCwEMkLmKcnjEGPfisS22SPVTkMaQ +uItzp8csnn7Yro8nwFOQYd0250t0PEqfoJiD7bpv9ivnjOk9h4zOWfCIGPicAufK +bAekxK7SnInaEYvBZOGaR1Y4x9AY65cDTBXKdAUWi5z3/tcm1S2+CHDJAoGBANpA +Shuf0nud6QSvmwLPwsWGzER8cgmFQ/dZvOtuezGfSHsS/XvnR9mBdFqMGjude3lZ +bERPJIFGWtid1OBQVb1W8mxPo9d+fW+9oRnkCrX9bOOYkrTMxu9UUezGI4CTAPa7 +6Dr7Wyh6Bkg4bm6qmgBE8swmGbRHKGCO9D7JUeNfAoGBAJekorSYRgN+Bj4eBc+M +YIOc0sA1ojLBvFPHc7SEpIWe3d8z0WOciBZve16kvpI1el9rLPRRXTmSos4gqr73 +LRLrbA5ZKTSrC4XK58l2Y8CkEwBl9TY7quFbHgxdqbmZl1ewLXzL/vn9id4HjWhO +J31v9TiavuV+zmMuVf/axCzRAoGAAynnaRsZ+/zAAfdhsdq9IgvgLiX3qTerUoyU +dn01f/SlIlOWJROnMPn1a9KYFsEjpxCqxxq2lsEkU/uFuHKxq3r1LKjC4T7OJq6D +BVMO7LBtwabWiZRmVdXNEjeVECoRW4JBzYkTOzT5nlZjE2uZq+NT+a2btcdKSIwJ +8lcMvtUCgYAZGAvY91RFrD73ZQVp4iDNEjzTOLQreXj/2eEHbuF8xXsZPRensqzO +ptzM7eQYVPwEh/Qd0re2D7cDHITHTA/Pgi13Ln2o/QlRfezGZKfwYm8qDXLrpDSF +PQQp/P6b0pzmEEm1xCI2Js3qWmFba/4BVDApJ7As3Yh1QTys0y9S5A== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/auth.alipay.com.crt b/cert/tmpCert/auth.alipay.com.crt new file mode 100644 index 0000000..1677e99 --- /dev/null +++ b/cert/tmpCert/auth.alipay.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSjCCAjICCQCX01C4JsnjmTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2NDIwM1oXDTE1MDgwODA2NDIwM1ow +gYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPYXV0 +aC5hbGlwYXkuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+vm8BoD3+nFbDsNZU/4D73X900si8jtkHFcP +inRR5eD4PqyREIn13de9U2xOxtx+djOh+2Y6pwXaL14FO0Mj8v78aNErB80h3LcI +MfB1C10I+OKM08jOGv9vgIOPuKllfCyN/oa9gYfgXH9w7rwqs7dwsjTWNV6vNbSi +o1jqez0uVPxn2X6k5k7K5J50S99Kt/0UTKFmzAZxztQyCZFhEQvNSe7YxXM0uhTl +cwjiR5BQdYuAjmCvpsank7mhHB8c4+j06dedSKg4CoQtSvfmoguXjab9Lb3qOizo +s+sxqFVCmBgmeWOu/y9fY+hcIttIXLzTzEVO40T+RY/Sjv/h7wIDAQABMA0GCSqG +SIb3DQEBBQUAA4IBAQAUj0o9Cj9xC8uNB0tvit07hhdrxPcfVyz7PCTsWAtifVyk +xeHcVFiICKk8OUnvvUkyLwcI01yicyWpTz/ft/tuhBAoIcwn2CQ8pp3oxpGlPKX5 +ufkPilN8SdSJvLIob8yt2ji6a/fcBs66XOLQOwvbRvRFadOxnrzFidLBAXL/0SHu +r94aZ/lQ4mGGesFTObAp5mscBnML7xQ1NK+Y7sInETZHQFgGHOJuoefpoad3RXWW +4CDLb/51/yKdRuuUS7cQ0tfWiZjzUhRKZlXJ/I51hayl9s99hRyWaw/lOGUwGlUr +XgC7DRZbWa3hqriP22U4KqgU7iEpHqD52q4qifzm +-----END CERTIFICATE----- diff --git a/cert/tmpCert/auth.alipay.com.csr b/cert/tmpCert/auth.alipay.com.csr new file mode 100644 index 0000000..1de2eab --- /dev/null +++ b/cert/tmpCert/auth.alipay.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEY +MBYGA1UEAwwPYXV0aC5hbGlwYXkuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+vm8BoD3+nFbDsNZU/4D +73X900si8jtkHFcPinRR5eD4PqyREIn13de9U2xOxtx+djOh+2Y6pwXaL14FO0Mj +8v78aNErB80h3LcIMfB1C10I+OKM08jOGv9vgIOPuKllfCyN/oa9gYfgXH9w7rwq +s7dwsjTWNV6vNbSio1jqez0uVPxn2X6k5k7K5J50S99Kt/0UTKFmzAZxztQyCZFh +EQvNSe7YxXM0uhTlcwjiR5BQdYuAjmCvpsank7mhHB8c4+j06dedSKg4CoQtSvfm +oguXjab9Lb3qOizos+sxqFVCmBgmeWOu/y9fY+hcIttIXLzTzEVO40T+RY/Sjv/h +7wIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAEmHZxf50uUSaivvvOQ36FDSQGvf +ZsffDYa8PcL8g0T8HOeK2yS4Wol0NjW7IR0YbN7IL8XDhblTUEBPLpXo2lUtKUYJ +mXOGbuiQRPTrTT5nSreYVB6Agm1EZkLjWspPZWgNgEGSG7UCq529e7mclsAWdr9v +/J3ZXj3ggkgRrXbWyvfFdeIqO7gAZgrUvLaQRPiA6AFtjSXA28RdecyylDcF2z4S +CnqyGan1xlBPb8LAC/NiA9S2hw5fFwaOUhnt4wlFOnP2e7CM39/BMC6o66T5hoa+ +tfNAIHG04DYGkhO4Y9iA4kgqx0mheQYtyu8pa61oo9FQINTCsOTMEl2i89I= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/auth.alipay.com.key b/cert/tmpCert/auth.alipay.com.key new file mode 100644 index 0000000..245e677 --- /dev/null +++ b/cert/tmpCert/auth.alipay.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA+vm8BoD3+nFbDsNZU/4D73X900si8jtkHFcPinRR5eD4PqyR +EIn13de9U2xOxtx+djOh+2Y6pwXaL14FO0Mj8v78aNErB80h3LcIMfB1C10I+OKM +08jOGv9vgIOPuKllfCyN/oa9gYfgXH9w7rwqs7dwsjTWNV6vNbSio1jqez0uVPxn +2X6k5k7K5J50S99Kt/0UTKFmzAZxztQyCZFhEQvNSe7YxXM0uhTlcwjiR5BQdYuA +jmCvpsank7mhHB8c4+j06dedSKg4CoQtSvfmoguXjab9Lb3qOizos+sxqFVCmBgm +eWOu/y9fY+hcIttIXLzTzEVO40T+RY/Sjv/h7wIDAQABAoIBAQDVBmKFNrTFO7Ap +gMBynXojqAgRb4YzCxw3PeJwB7l4IJM1R24+Fou9iCAoDhdzjbY9iCfmZmhEWqBO +ckSIf72kxK/kHB6lGYWzfRwUn2AJjCdQcaNNI/VlTwkKkSDNgeMlGgBQWXfC2V0j +xfxKdybbskmSyWxEkqCvOiqN8avde2tmM5dw5vG6oRC76CAvCRIho49xTrXOwoFB +thPDA96BkID52YpB98/dV+fLd0TOD84ODEzHZeNKGBeU9RxxOZXzSCDqvIFGZTLP +O2gJU7UGFmhEwf1b4Sy8p0ClfiTWN7Kewq+2E0ZUgAEZ1eu0E+r23eJS9/NFAGIk +jEqj82EJAoGBAP+xx0yyawDOZJDRqLd+W8lKTQLho42w/DS6Y6uyKDpYswA4WJbG +FBY3NkD3EDXPRepnrpzOMnUzFyUO+Arfa0EznwenYjbDbcjj+TdaPxHFIb4XZYcR +36kFZ7OwMJNS4nTzf1d8Cml3Yy7NE9DmLtEdJzuPKmqCQGRkpfYDi5KbAoGBAPtG +gyni4G9xZhXqZwRwJBEchIXUBQSAR53Rt49xph8waRlg+HFWOfCSkFi/ABrV4owr +VTwhZq3Mbizyfocw/XoTEUdjLEAVlF8pM6rMe1Y80/zpOBh4jTkX7K6vgdrapg2F +uFqI+ddJ441DFNsCbnY2wh1FkSfCHm+/L/3j64k9AoGBAKJlr0cvKnbgn067WoTw +ZCt8XV0vIkmj1wtGNneeN56XJ1lEcD+Snr9dYb/xKwKCGs29/FDrRXDaeiC3WSLO +s7g9qQuba+2MQfYNlQNq9hO7OKsbAQjAeWVIYYzmonNveRT+ciqGRbamdQAMkEFl +cOavtXNGgpITGAKrShzuM39xAoGAEy+THEOid1/lN48qRoB5gIT46W8C4xEYZsh4 +h49Z68+6dqGc1qqKyf+m3d/XljT2k1VLsMesG2EcmHn7hz8KW6PREe5UlqAPMCTp +OQVb9X23gfwcuGGcBtv4ym3EMH25aBbpuJ/006dkpIiWsxJAdO5BbBK/vpVn1Yh3 +lZ8tgNECgYEA8xll+/ds/o0Wcti8k/NBfHsC+D3pfMxLJPAvEeotu+C6PBR1R77T +SV4iLA/qCrG9oXl17X9gMl3ROnC5DkKBrAMOo7Oq9twwpWBzPBp+acU0HXqiS/N9 +0TFE6fXQC+Oe55GGqDD0KyKAmRjhi0UORLd6rNqyUKlnxrkgEzXShjQ= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/cdn-careers.sstatic.net.crt b/cert/tmpCert/cdn-careers.sstatic.net.crt new file mode 100644 index 0000000..713839f --- /dev/null +++ b/cert/tmpCert/cdn-careers.sstatic.net.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUjCCAjoCCQCX01C4JsnjqTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjUxMFoXDTE1MDgwODA3MjUxMFow +gYoxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEgMB4GA1UEAwwXY2Ru +LWNhcmVlcnMuc3N0YXRpYy5uZXQxFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkfGral2/WsmrqJzdr4/LBvC+G +PIih2yeyfq6BT5eurNbbyr9xNC/NewVtO/n1aE6/cHFh8GmLLEjb/YqtRy2zXq26 +7D438hnPo+52tbDwD5FoMwH7mlWhNHr0Uhg0pnQHvNFcvdPUhrMbNQ2stGVGwVA7 +L3/oikq+lQVG9MuWbXnNJ2EwdRnFn4Bca4pWXQshrNBfgPXGiAzJ24D2hhr4GE2Y +6bdKOJ+YOVu+peAy8PqAOj7sbxy+kuB3HDk9KI7YAurOrYce/1cj3KZCzMfUeQgn +10stkbJn5Ouc8BtAC03cNjrARrvkmbqwx+AHSHH5nB6RbkV/tHJDr83D0vudAgMB +AAEwDQYJKoZIhvcNAQEFBQADggEBACToDVVZg4AQ1f6CJLM63JBAP9CDkMeRIhkd +KjRfXDU9wAjD9UGvt4aGW+nsQPp2GuMqVxKdmcR7SDwDgzBGV5vBJv8IudvEQ6xT +AIcjmCHJpYbsjo+Gyb3a/NSI+l9mkHRXWRXgSho9rdM5A7VJsahI53FJevpKMlCZ +egdyRsDRI4hpzYSIn6VMLu7AYkFq1bwy5BmKKUNVRsRgqItXZ6nsbOiDvqtINZFO +RQt+9iJZOYgiwRfLNBMzzJdfv1DfjmcW9+nsspS1nkTqgAL9ecZdMoQeGlwI58r2 +QNTgAaMDGfWIy8XVmF02l9jqC6sbkieGV2L10anJffpZ1TQvcI4= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/cdn-careers.sstatic.net.csr b/cert/tmpCert/cdn-careers.sstatic.net.csr new file mode 100644 index 0000000..00dfc25 --- /dev/null +++ b/cert/tmpCert/cdn-careers.sstatic.net.csr @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIC0DCCAbgCAQAwgYoxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEg +MB4GA1UEAwwXY2RuLWNhcmVlcnMuc3N0YXRpYy5uZXQxFjAUBgkqhkiG9w0BCQEW +B2FAYi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkfGral2/W +smrqJzdr4/LBvC+GPIih2yeyfq6BT5eurNbbyr9xNC/NewVtO/n1aE6/cHFh8GmL +LEjb/YqtRy2zXq267D438hnPo+52tbDwD5FoMwH7mlWhNHr0Uhg0pnQHvNFcvdPU +hrMbNQ2stGVGwVA7L3/oikq+lQVG9MuWbXnNJ2EwdRnFn4Bca4pWXQshrNBfgPXG +iAzJ24D2hhr4GE2Y6bdKOJ+YOVu+peAy8PqAOj7sbxy+kuB3HDk9KI7YAurOrYce +/1cj3KZCzMfUeQgn10stkbJn5Ouc8BtAC03cNjrARrvkmbqwx+AHSHH5nB6RbkV/ +tHJDr83D0vudAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEARncPGSdpRat1U0mZ +7vSXUfjaoa5umWa1b9Y+vKbY05YaorzYiTDVGdjrmletMaA2ksdXoIwp9vmpLVpN +HEccNhtivyS8C6ZAiqVEmcP2ItazV6pJkvsU5UoW8UJ7BpaRkgeuQ4/5/NxKEpeT +1CKGkV23BjMuoYgwuhTuGCG9YAWaFiqPzta4JxtlniuKOyOUm773oYO6zPRDUiix +83aJ7oHVnjTKEQqAQdzS2yxKvOl8AqvY599cDSXVCq5xmK0vWp4q1U9ocJSybfX5 ++j0aIiic3yq9wBCV2K4uNh0g0Tg62Jc8eaaCS1OVIfmY2i6g/pmkYi3rMtELr528 +i/lvig== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/cdn-careers.sstatic.net.key b/cert/tmpCert/cdn-careers.sstatic.net.key new file mode 100644 index 0000000..8567157 --- /dev/null +++ b/cert/tmpCert/cdn-careers.sstatic.net.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA5Hxq2pdv1rJq6ic3a+PywbwvhjyIodsnsn6ugU+XrqzW28q/ +cTQvzXsFbTv59WhOv3BxYfBpiyxI2/2KrUcts16tuuw+N/IZz6PudrWw8A+RaDMB ++5pVoTR69FIYNKZ0B7zRXL3T1IazGzUNrLRlRsFQOy9/6IpKvpUFRvTLlm15zSdh +MHUZxZ+AXGuKVl0LIazQX4D1xogMyduA9oYa+BhNmOm3SjifmDlbvqXgMvD6gDo+ +7G8cvpLgdxw5PSiO2ALqzq2HHv9XI9ymQszH1HkIJ9dLLZGyZ+TrnPAbQAtN3DY6 +wEa75Jm6sMfgB0hx+ZwekW5Ff7RyQ6/Nw9L7nQIDAQABAoIBAQCOr8APGGlIW413 +AtySbPzpzbqkCuOMqI7m4kPaDzl7ZQacpcXeTSfZG41tBPp5LhWXagH0lq1is1og +v/o9cejxThwSUnwcdf12dTpzOc3wbNhyiQAg/uWg0WRDdY0WPCjTuC/KyeUioKfz +QrNyegmRISIYg/ZN4ycAU5HDGRaWrkMcWLmwV6cGMdE8iIrqJ6ar/u65GcUsuwGH +U2yANA9h6H6tQKsEzlVjUegEt9XtDD37gHZ6tip+aTC9v5yAAuTok8HCoYBfrjr3 +vDdTLXHKL9sFkQrEpJEV66OL+9WuuxyE+zqZdO/FYlO37kycZlif9tnstdXuMcNS +RDpNiCslAoGBAPmdrAmVyJlpM1na3A+4q8VbZmAkc746JF8rzNXt/xWDTrFfakgc +13ochQoQTcZxmCv3IWKxJtUm7cVDGtIygKGB4j70IC6fSuwwGZfgIXXPUfMmP+QP +jr96+aYUNpZ9En+lmWEGEW2bn1qrmRl09kLrs3rKPPlcRQp5Mt1YvUsHAoGBAOpU +Zms7aehwiI1GMf0ERYY6iKZWKGseOXeyZ72ukfhgim5CBXDIJuePfLp5W85J9+qA +4A1YVT0i9yV7BeLEx0i7bH/A1gXhktYwVae5qm6wdJSoCztFePOysuePi+pKNQcI +lVwNlz7rsi3EAU3tHpRfG9NQGR4gTAx5NOVyzoc7AoGARJHGl594yoO2ooFXoE33 +ibBw8AozbVcldKtgioflYbB/ZoQyevrJSncZKMmPw+qihblOh4DojPczq9OiQ4my +AivezbJcQNJrT3RrI2hjaKx585RXSrvnV7xdZfz5fd9/vGbuOlPjZ7uvS8YFuZOC +rqF23U0+8LUjFhxzF5Dv9vMCgYEA15C2+1SX1CWZ6OS3XbwNPTMhvGssGYafdTag +6sTqMaSWFGIV4S+vYnwEUQMNapNvRsIx2vT0zR4aX9dxjbBaZ9VLNacu/BAMZY/n +bDmHyPX4+TwxwN/jKcStggnyu6Bycbr6s8ko5tAqhKF4VbiZ1gI8dcOMp8MsUpk6 +CQ35YjsCgYAEM34EueVO4vH1hwwINDwMLqBEC+p0Yhru7qCd4fXV328Qx9lVqono +IsvYpAEz5nC4zYo3nNFK+30ASCh/g9UyaVwGvnPVMCh0JHCu90TuMi5Z4g6uIS9k +loXInyGCEIH/Mias5hgDeq8L8XlMPzC/JWq667rmhwoAmmrmLHaQRA== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/cdn.sstatic.net.crt b/cert/tmpCert/cdn.sstatic.net.crt new file mode 100644 index 0000000..673226c --- /dev/null +++ b/cert/tmpCert/cdn.sstatic.net.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSjCCAjICCQCX01C4JsnjpTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjUwOVoXDTE1MDgwODA3MjUwOVow +gYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPY2Ru +LnNzdGF0aWMubmV0MRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0OeLlp0nhpY2oGz9rCq0/iWGP90ENxli1Tma +nWky0bAqk+AVKMfsYAbOFSN5SZU4+P9mucEvllH4WbiLX/GAoa2fC/0FfKkNaoIw +QJeG0ulZCm/B5A7AVV3sptlTY66bQBThMI90yZY3ct2uy8TJNh9rQnsOnMik9Sm7 +rH7uxbjFxbpOSOeZ06OomXfBs2fX3VtyUcZv0zj2nr5j7X+o9I1BVFvmk6NmwibC +vkNF522xYSosIiChtD30qJPRt9Ldzf1EFCB66ijROokh4MXPUwAcP+wc+GW9Wy+K +9aLyQ+rqyH7eTuZuLHCuu4JcLS/SSoCeVQxB52YJtutYn5z6pQIDAQABMA0GCSqG +SIb3DQEBBQUAA4IBAQAy6PJTttNKJNTg6iTMz0s2BN7Lzy6J7wqlP8ipsSroilxY +Wn6k9Vp5/PR1dyZ/NAupmgVjAHpcRioHBkqVEZ7cAqDcVUXK2Dl31EzHVmOhaNRh +peMa6I95/XLxrDGa1jjVX+Zbt6+oMKDql+y2q5WN9JRTlHBHHR5zf1RpThVo8lJN +h81NVIFUwe9auskRI5gyUuE56cp2L7ooAVJPqOYaWLQDFerx9UsC1ZlF0ZvmOylX +v2iF3kupeRPeHw/Wm4l0A4S2sOJZlTJzeBZ3JKNGVJfguV2Oj5gbTTYt7NKXM7Lg +U4F4YPbWT2QP+x90FywqpNZaXiAZ3F4jksVHUhVV +-----END CERTIFICATE----- diff --git a/cert/tmpCert/cdn.sstatic.net.csr b/cert/tmpCert/cdn.sstatic.net.csr new file mode 100644 index 0000000..9b8e9f3 --- /dev/null +++ b/cert/tmpCert/cdn.sstatic.net.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEY +MBYGA1UEAwwPY2RuLnNzdGF0aWMubmV0MRYwFAYJKoZIhvcNAQkBFgdhQGIuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0OeLlp0nhpY2oGz9rCq0 +/iWGP90ENxli1TmanWky0bAqk+AVKMfsYAbOFSN5SZU4+P9mucEvllH4WbiLX/GA +oa2fC/0FfKkNaoIwQJeG0ulZCm/B5A7AVV3sptlTY66bQBThMI90yZY3ct2uy8TJ +Nh9rQnsOnMik9Sm7rH7uxbjFxbpOSOeZ06OomXfBs2fX3VtyUcZv0zj2nr5j7X+o +9I1BVFvmk6NmwibCvkNF522xYSosIiChtD30qJPRt9Ldzf1EFCB66ijROokh4MXP +UwAcP+wc+GW9Wy+K9aLyQ+rqyH7eTuZuLHCuu4JcLS/SSoCeVQxB52YJtutYn5z6 +pQIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBALBboaQxyl/2C6dfCpTNfS/en96X +AYa0PgfpaWkdvLzF+gZbUFNYg3+PA/altpnuCv/mv6MNocUYF6FKRaHK2xaBRs3W +bvJLNaFksU5s5WWhjAMh9qXUa4Dtg4hOCKz2zkA6j0xsLMfZZGrdv1U1TbUnVlKh +pRp2TirOYoUPiREUGcMBfG2vs/S1vH1Pfa480/Df6P4vER/5ncwKXQHMDBQpVUaN +OZnQLQ35hme1QZgllpnhpWHvnHhFGC6BKgyc4k6JWTcAR9W4gftWFwcOek3Y7QuT +scMcFjr9efml8GigFjc2D9Voxjnwl8eK+y1/E6h1EhOitG6b9YSXZRo8pzo= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/cdn.sstatic.net.key b/cert/tmpCert/cdn.sstatic.net.key new file mode 100644 index 0000000..68c6072 --- /dev/null +++ b/cert/tmpCert/cdn.sstatic.net.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA0OeLlp0nhpY2oGz9rCq0/iWGP90ENxli1TmanWky0bAqk+AV +KMfsYAbOFSN5SZU4+P9mucEvllH4WbiLX/GAoa2fC/0FfKkNaoIwQJeG0ulZCm/B +5A7AVV3sptlTY66bQBThMI90yZY3ct2uy8TJNh9rQnsOnMik9Sm7rH7uxbjFxbpO +SOeZ06OomXfBs2fX3VtyUcZv0zj2nr5j7X+o9I1BVFvmk6NmwibCvkNF522xYSos +IiChtD30qJPRt9Ldzf1EFCB66ijROokh4MXPUwAcP+wc+GW9Wy+K9aLyQ+rqyH7e +TuZuLHCuu4JcLS/SSoCeVQxB52YJtutYn5z6pQIDAQABAoIBADnopao3oDhPtY7d +B6jNIeT9k+xqIPwBHoOK91BBVCQKWJMrX9IxMVYhLMlxTvLV2bg0XE6LvdxGlriQ +TppnAMhQr7EMD5RR7HUk56lQF8CpjNQ2zKGicTB429wYjGQqh8DIyO/EJJSo/m/q +AcVcpIZLSVlhcViGyitnyS109k16fQoctnIr9x4pSZbNgQovyO7HAnBmRpqBGT9V +fz1bsdUlxucjgB0u/wabvu0+tirDYgYXN1H4NyvtkRoAoXgHs6D+mmo3Ua9MKEP0 +TRTE+jgZ1pGz2YJ34Q9j8pDC4El4NlX8VjpjGHpLGRP5klTIWsZd4Up3hCvAxv8V +vHbuFFUCgYEA/0GE7trNtM4UQOSoavRFiVb6ju02YF6m7N4uox0ngQ+nkXDduJjB +Xi9IZK7X0b1W1DCUQw1Y9K+w01hGpIXarCnQT2RxvUFlsuwi7rTv78TR2ppumCdC +c6N8NjIHebuXNOozidIm4yihnMhCdBWwVFHDCqrR/Jj0RFGwGWrsV/8CgYEA0YNv +29E3AOgwFGkGTEC4xiAhqB5HRx6sR6oBMhVPGz4Az/2ABaP6rTItEy2fdape1Q1l +UTbxvKhFFHfjYpe1JsRX282hd9PFiMBynS4ztWgazP1RDqQqm6t7q50wDP7bhuJx +F5oVBhzTxX0gKxPlIEgCjzijjaX3pMoojcjeTVsCgYBxpr6Fiy6kHk2uRyEl3fVI +HU4abUwUxJAWTyb8wXJhaJL3kwVlt74BLZRSH/dAD8mlWKvq3vqIl+FneJqbjm26 +0jNJ5jMuTPv3GmTDXBSo8T1u0+wCGxjfXB9mEgh6DyhYCx8/ci6WXfT3VcMg5LdK +E81/5mbwzTmVYbnC13S8CQKBgQCXJRoaW4kxt0+QOeAYPIzQKbf+H7HOJdula4in +R+Ykwgs2ASxNZWnfbpZEAqLJ8Rmu25YfC+NC9aW4SXEZ3FYMXJMBeAwndPhJWoSU +zhLxqOPExG6ogFhYq1JxkNlsVqOqYEuz+i12lm9URpthWF3wduKZzgN3mabZFBpD +hwiQhwKBgG5YfeGMKJ48mzl9QKJ0076xArTRSpbz0grWPZz6tjOquN74wXtReOea +m7TFJ0FtgqtAkkli0/XBetRZmdolXumn9/VzfeSM+Eu2u4q0ry0CE021chMCffle +u35TLZ55HRDYgAumPfYT7S/3uY38wsm0ysIiXMg10UGqBsBQJf8/ +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/clients1.google.com.crt b/cert/tmpCert/clients1.google.com.crt new file mode 100644 index 0000000..48bd063 --- /dev/null +++ b/cert/tmpCert/clients1.google.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjiDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA1NDAyMFoXDTE1MDgwODA1NDAyMFow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTY2xp +ZW50czEuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKJ5xB6Ou0VBsLyWReNgdO8ZXDo97tna +nGGyXc8urdCS1DyvpdwbiI5dubPd4nF3EcUcYre+T6ipX9H05EACqQc1/Bqwmzii +vBr3VY+aGIPSn3sMj9/ckqZ5MilUWq3Pba6+YDM1SHcibiHBX+mF+zZDjrD+wKQM +iZotwefbHhriNCrqv/Nj3viCwY0F21BMUBltD6fbFkgIuZL+aN3gXjXzwgtokcoM +UcqA3Wd8R7/tTPHkaboL7Wj8kREwxSy/tNFn7dTPfTAtwIxAlu6QWUpx8Cuxa8sD +k3mobtM6Cq6fHZGVtXtonmO6hWEoUvITXbYWZS6E7D2Vsj5w022gqJ0CAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEAgH2t+rWZfaBVmjZRSU09ADXjGzFW7MVY4692BwDo +T0L0vha8oMim7oF6uohZBXZTDT2UL7vtcu5oNMnSZ38zOfIFtWhNUf67gyB32kLg +RCaSPNACQt03gG9DhiCSnjy8GlDzA/UYpWnLOZlzenIinsYHcJ62W+SvDahVYXbq +1YXxrdbunIJCUkhAb7V8QJszSiFpGAm5P1xIzESg6H/o3fV955nI3L8afnTumqDx +6jQzBm9N9Hyrc9NYD/U46At+79wIJriXgtFSkyIeiDj2kT79VBFvt17Qz5kWMiOR +G6EcdRflPQ7uuHAbSNJBL26ELY9sz8cFIMILysy9YQgZYg== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/clients1.google.com.csr b/cert/tmpCert/clients1.google.com.csr new file mode 100644 index 0000000..82bde77 --- /dev/null +++ b/cert/tmpCert/clients1.google.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTY2xpZW50czEuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKJ5xB6Ou0VBsLyW +ReNgdO8ZXDo97tnanGGyXc8urdCS1DyvpdwbiI5dubPd4nF3EcUcYre+T6ipX9H0 +5EACqQc1/BqwmziivBr3VY+aGIPSn3sMj9/ckqZ5MilUWq3Pba6+YDM1SHcibiHB +X+mF+zZDjrD+wKQMiZotwefbHhriNCrqv/Nj3viCwY0F21BMUBltD6fbFkgIuZL+ +aN3gXjXzwgtokcoMUcqA3Wd8R7/tTPHkaboL7Wj8kREwxSy/tNFn7dTPfTAtwIxA +lu6QWUpx8Cuxa8sDk3mobtM6Cq6fHZGVtXtonmO6hWEoUvITXbYWZS6E7D2Vsj5w +022gqJ0CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQBanK3RiPNN91oQJJKnd84e +fDUArmyMQBVOK9mOrdEg5XWlWlU8DctVkXdtmqYV+AN0fLk/zeF9yanrpuXrMCHg +nCq30ubiVEOqt0KstmTsJykp59glv4Awb5uL6qltmReON8fcK2kj402g+M7RiSQQ +JIJoSzdsU86EHZEnVveVQtAocKrgmn1gfYMc6OQ/rDewQOEnWWGFO6fXuO0nE2c6 +Xe3bvdlQBDmK0wncoBc33xspw4Cfw/7IIEWrdqM/r10hMSRhIWBLilUR42dueb0l +Xl1X/4nF4U51upUzuGeGP6kwgZ8Cx4E7lX64U5cTDBzVmLHdVX1wC+Cwfn8WSQB9 +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/clients1.google.com.key b/cert/tmpCert/clients1.google.com.key new file mode 100644 index 0000000..6833bb9 --- /dev/null +++ b/cert/tmpCert/clients1.google.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEAonnEHo67RUGwvJZF42B07xlcOj3u2dqcYbJdzy6t0JLUPK+l +3BuIjl25s93icXcRxRxit75PqKlf0fTkQAKpBzX8GrCbOKK8GvdVj5oYg9KfewyP +39ySpnkyKVRarc9trr5gMzVIdyJuIcFf6YX7NkOOsP7ApAyJmi3B59seGuI0Kuq/ +82Pe+ILBjQXbUExQGW0Pp9sWSAi5kv5o3eBeNfPCC2iRygxRyoDdZ3xHv+1M8eRp +ugvtaPyRETDFLL+00Wft1M99MC3AjECW7pBZSnHwK7FrywOTeahu0zoKrp8dkZW1 +e2ieY7qFYShS8hNdthZlLoTsPZWyPnDTbaConQIDAQABAoIBAAC59KOCVdoAai7d +qSBUHRG4lk34WuoEbTCOoJa9ia9mCKbgzigGw3yHdL4WHt4M/zpXXyWdJzQE1dXV +d3PFz0Wl+yOPaJI/QAIK2woSUUu9lFLzgm0oyksOPagrpWAjjkT6uulfspw9vipO +eAROQgpDEQ8/hFL3b2IOFFDaDO9n06pOIMYJjo/XG11pU6Nzl9dFJ2OuKNd+y5O+ +i00RsNMebM48cldDMo5TXDDpNkBL4aVH/18uKswuQEGnZW1tPIS60s4ocLhI4MgU +bDwtwynQx157DY2ZmPB6ZkhKGnhhSp/U3MAldO6T2H7T3sxg64fcO9B/1pfzK/SA +FZqTXe0CgYEA16+/keb2Y8bCyau8nUa5nF7H1S9EljBi8XYSb01p/vbUDNcCUuA0 +tqv5M4w0FrC6Yv/UOvCeuojeVyOZ4l6XCs7M0acpWl2t5ysRQNMinCVpcQd4d6vk +dr3hv/xxrKAJzSMI9bFUzbvUG5Rep3uLpPKxMXhyo83Xp18+iZ9fAO8CgYEAwNf2 +sBafoiotAQm/JqQE52XmLmJD6h01Ai5KTAgrUy5OFLx6tf5XU+QQYtkutktepobo +S3bTcXq5XdVtwALgMXdiuXbTrRw+QyL44/94zF3gJOvviBVhCzFupX/yhBQIpDOV +2f5Rx+OB3yn0zxFstzUvUMb5vNONMnnPd4lCFzMCgYA7fGpOeC++RwRUELx9eBMb +EHz2zAmTjpbLV7Av6F7yhern+6jVaKbBNt8NG38GPwm44iwLcW+lrLf9uoDnkQUB +YxXUQNFD7hBXcGZaxaCHBj51gQT1pH/nS+lmRN6pKJ5raF1BPf5Qm5wdWydb89QI +0zKRnVGo4c23iKo71KukGwKBgE5M4hspdHOx0Eglnvmfi2YxV77po03Bwi46gWxR +vNWvbYC57tFKjka/yW95Y6AdBjdze4p4mu3uuKlC6acXA9TR9sH7X4Ngfl9gKdLZ +fkDstQAI1F9a3uZekeCdDOlYARI659N1kdspoyfrrz0MhCn3bFjOEcT72M7v6q9M +igtFAoGAREEsOq+qHyJx2f4xb/Rm27k2M7NAacNmSgoBCdQiw61OzmkDegnxnlJH +ZIupKxzr81GXK2WdbLslZwhsRvfiMFz2BqEWxjLi24TSEIrBcgpZMYy6GHL+pGlu +XMRtwN08f9nmtAvbbzJDvCuB7oPay+/eIyK6BQ7OqwCey7Pzu58= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/clients4.google.com.crt b/cert/tmpCert/clients4.google.com.crt new file mode 100644 index 0000000..b9f84ae --- /dev/null +++ b/cert/tmpCert/clients4.google.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjlDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2MjIwOFoXDTE1MDgwODA2MjIwOFow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTY2xp +ZW50czQuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBANA8j6r5KGdAW+OY7kQnVcgeX66vQ5dz +QEc9orIQXMriyUyszFlvNO64oWIAuC1A7Z5cWuSUgJKLTvM37yXqm/SMsc802Wev +/S7MO97o56p8oCBQyzi7O3bBLBqF2XrcJdfDeWItdKoKFqQ73bTtrQ0CfNSevcgJ +gZc7emKoorF7+rAzIQuhUDNwtGhPhOfGD4EdUsM+IW+WAqQZM5lRCR+FbrbkhYPY +Vc365QOIZdkjaVeQ0UEdXx6TCVgUop8XUnCRwMo97UJMxMSZg1bzGhtm6e7QtJaL +sbFfXH2V+B8Gu1ROfzxTU3tDVHxCCdUnS8Ejj/0pTb3WfVvDQH89M3MCAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEAqdBT9Pf95dNkEuRvu50MrnuHP8QXYSxQlaPN3l4e +VFMPoacJgcgSIaF7hv1jIxTgoA24eZaG7PvxqThxV6hgz1vCoJooxeeCl03CKz+6 +DyWp5zEPOFvg7GQ1dYyKg2e2WGYMzTtb75Tl8pmPIAWCYeTd76KEa5kRdNVGaM5X +UagqeMwCiEWnz9CEocBp2JhBAwNL2URwJgdtdlcqDhws10Wm5s6ILhK2GwJyrpH0 +Ro4qi8aoAOXgpa8AUILYTEO7i5AwQd45D76yJLqWSg9rGpIG03VNJClpGMQ2AZ8L +1tOMu5Rg0cZXhiOeLmBoEpVRGIR5jJdUzWlOASmTO9JdVw== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/clients4.google.com.csr b/cert/tmpCert/clients4.google.com.csr new file mode 100644 index 0000000..d40edb5 --- /dev/null +++ b/cert/tmpCert/clients4.google.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTY2xpZW50czQuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANA8j6r5KGdAW+OY +7kQnVcgeX66vQ5dzQEc9orIQXMriyUyszFlvNO64oWIAuC1A7Z5cWuSUgJKLTvM3 +7yXqm/SMsc802Wev/S7MO97o56p8oCBQyzi7O3bBLBqF2XrcJdfDeWItdKoKFqQ7 +3bTtrQ0CfNSevcgJgZc7emKoorF7+rAzIQuhUDNwtGhPhOfGD4EdUsM+IW+WAqQZ +M5lRCR+FbrbkhYPYVc365QOIZdkjaVeQ0UEdXx6TCVgUop8XUnCRwMo97UJMxMSZ +g1bzGhtm6e7QtJaLsbFfXH2V+B8Gu1ROfzxTU3tDVHxCCdUnS8Ejj/0pTb3WfVvD +QH89M3MCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQA0AOkg6aVoubnlGsoJNwey +iJyB1aw+H+Jqm5KHeo+PUiNWRMZgThxRMMBVNkJrSlml24lTM/Ui1Wl12mGGgBx5 +jHafTjsyQIFAT4sFOy+q8fp06hKjKlUXbwNLUfiMQmS7QWLkvZ3XYjnVwFm02Nkm +RbiLIMOYpeESaDgZVWJgOJqv74SND1bZYfTao3b0KZdoZT6Y/mt5OoAmP81JJ1dv +6h6vgqPj+JpB4BPpUawovQj/FlGstpn2j4DZQCXIGw1Wdzwqo2e/Ass/5nMy5SWb +fcDfZkYUW1IZvHKeyeG9palnokMkvAjF4M6TK1vyUNkpIBsKiOVj/Fbelw6m/0nP +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/clients4.google.com.key b/cert/tmpCert/clients4.google.com.key new file mode 100644 index 0000000..bda6df5 --- /dev/null +++ b/cert/tmpCert/clients4.google.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA0DyPqvkoZ0Bb45juRCdVyB5frq9Dl3NARz2ishBcyuLJTKzM +WW807rihYgC4LUDtnlxa5JSAkotO8zfvJeqb9IyxzzTZZ6/9Lsw73ujnqnygIFDL +OLs7dsEsGoXZetwl18N5Yi10qgoWpDvdtO2tDQJ81J69yAmBlzt6YqiisXv6sDMh +C6FQM3C0aE+E58YPgR1Swz4hb5YCpBkzmVEJH4VutuSFg9hVzfrlA4hl2SNpV5DR +QR1fHpMJWBSinxdScJHAyj3tQkzExJmDVvMaG2bp7tC0louxsV9cfZX4Hwa7VE5/ +PFNTe0NUfEIJ1SdLwSOP/SlNvdZ9W8NAfz0zcwIDAQABAoIBAGXi2+Cp3Ez4vn0T +3LDYFi6+Pc64zneR2oeA7tP1EZHreNbdTXcM5HdROxU6iOMLe7gaNBbXWjlZlB2I +5qhErF3xYSajEySahWSaZUjh6EgQhkCJh4WQhr3KMowfpZNpl9KEQCX7W7O/D+j3 +qbjW+e79oppduTng/NlELtOK81+nCa36di4+qG9gKRRDi9+bnp8yc0sfTuxqZizr +IJvrNkt1m3tHTxnKAihfxjmyyIiWIPzfTI+Q5GCxiATaoiRytHaQWkqgNBZw1zy3 +zALF8VeoEPT+BEISLNerNaBQQnGk6ZN5mPQgrwMewMjXe6Gpj38+d3UlEtlxSZCk +2OExZaECgYEA7cXWeG6rEUJCadVfVQOEA9OW/lEKm1sA+1iQ/zSH8k46eD0+KwsR +/Cq8TKtn2szLfIykox75eT2txqK0BkRUIXuvHK1USWy7thTx86fOmvzRm18wUaRC +yLTsHonL5sMSy4IhER+Kva3C1d4zuv6YRo2z9mtKZWRFvtIpbvrJrgkCgYEA4DMX +P5+/20qXdnbMnIGiKmBAY+PBFmCCziuafaBUADwY6hwPfldMia31fjnw+bR8w695 +D+qw4zs0vSw/O0xONY+ZhWJt580IZdaCl3i2EUDWWhCZyDmO7zLVZa6jCcqkSIfr +1YBbaMLepzV8RPYZnwVvYv9aSQKn0xqH1+NPNJsCgYAOfZIWgNgYEyus+3311mMD +QK/hC9tToHYs2zbq9q6aS74websCMIiGD6yuF3waz4RPMNsPveGCTAn9IwlJoHxo +FfuUCdQrLV87N4ePS9jBhUrY5zIwp4wSY0RIkClHBPhuQp31RzDTYnWPRx1r9fwd +wKEJEXzVNQkzGefAhbQo0QKBgA9acFUjE3ho+0ZZjFmLZxePz9kHV8m4gjysL8A6 +ooYBl5MwqL72K3+iMhWa0i3HdmPQOHImmEZ3X3008n+VEiYI13KS8wPUvqZ6sia9 +VXqI/iTcziswBeHLkWGNPA0Hm4h8BmJwj9H0xlqdBw2R7N8++AnHgt9NF0EVqAfY +wSvRAoGBAK3oUaOETl7ax9D8ydBJlEqbQysF454KYv33abNMQnEy8ccD07dpc7rQ +OH8CIrnctilBhMWAB30coifVIRXFjsGYtbudxMKmCpKGIIP8hJtZWHwYwCHCTKpA +0R9NJTlsxLUwgw5nsylV9vwRmvaJHaEBf/hssiZcpEBn1vjmPwoy +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/clients5.google.com.crt b/cert/tmpCert/clients5.google.com.crt new file mode 100644 index 0000000..225a684 --- /dev/null +++ b/cert/tmpCert/clients5.google.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjnzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2NTAxMloXDTE1MDgwODA2NTAxMlow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTY2xp +ZW50czUuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALxkQVw4rXvc1wrg730YyyZ+6UoNERU0 +tOdoDCbrsty+L9r/9zKzWiA8oFli3JjD/Lv+7RSBzr70JEF4c5ib37ZEAPkykNhW +VZv2S+jbWtgGKb1GOi/kcX64KkI40NDou4w+s/ceLQpQ5PtxPDP7SvgXfuy70STT +FeikSSw1fgUSP8iPeG6olddwrS0aGhl/q+gfVCpF/4KFgElKfrGtIcosdn3lhYDY +TZUbnLztXXqIARFlojRC141q/nk+YFUxIefXctqsTn1JS83Vu+yrjunLg5HMhQvN +ztJ3N++KgH7JXxD2Gr94FCRx80p8oUADp0OJlogAUxbAatYRPnEQIwkCAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEAGvuAdtICvlOKgHsiPZc/8s2AaJbvKEJlsowJOLDg +aJP/CfndJZO9iNru9jdKb13xZqa0PpZudIA9ydfzlH8l2qXGIrPNikkdDkfXpkKw +GU65Ngg/EgNzy5I/M94yezx1NmThU8ml1bWkwVRlRuqqr6qNfxfWSq3jjsQDzfU+ +2LJ6YAz91DY0IEbNPPWePHl/ykHc9F6lr7Uu6bLFTEYZeWoedHQwIbLk0iTrZx8c +QR/aFO1ATrpyIhPXyNA7J1/rEdPKHr7q1e9/snnwwyOLkiEPma0pxk0egaRRpnCU +7LAtzPWKRIFQAzsCsdPsGYuNVBE8QWbMPkFzjWtFCrl1kg== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/clients5.google.com.csr b/cert/tmpCert/clients5.google.com.csr new file mode 100644 index 0000000..a1dc8d7 --- /dev/null +++ b/cert/tmpCert/clients5.google.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTY2xpZW50czUuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxkQVw4rXvc1wrg +730YyyZ+6UoNERU0tOdoDCbrsty+L9r/9zKzWiA8oFli3JjD/Lv+7RSBzr70JEF4 +c5ib37ZEAPkykNhWVZv2S+jbWtgGKb1GOi/kcX64KkI40NDou4w+s/ceLQpQ5Ptx +PDP7SvgXfuy70STTFeikSSw1fgUSP8iPeG6olddwrS0aGhl/q+gfVCpF/4KFgElK +frGtIcosdn3lhYDYTZUbnLztXXqIARFlojRC141q/nk+YFUxIefXctqsTn1JS83V +u+yrjunLg5HMhQvNztJ3N++KgH7JXxD2Gr94FCRx80p8oUADp0OJlogAUxbAatYR +PnEQIwkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQCYEM1GtZTWaxG/o80I745n +sNZq6iJ+8S0BbNwyRBhrFInyYTH/p8UkK3HpgVtQZ8b2N4eXSYN/6T57FI0P5YQA +PG2HT9O5W7IupVfxFpyqiPk1rhpwKN8pNcANpZAZONjZ+YyZcR28K6xJFlrcCq1k +Gb7KkcmYVm1LiF/j9aMIsNZIRVu4GVdw1KGyz79aN0Zo+918XBQBg0e1XE3bt4PX +Zue7wQz3JSlDZY10ouTaxc5G4eCOH6sbMmFnLE2YnFdNp9ppQkg1Eoq/WdJ7/rLi +kxIIQ9DQjR9MtI/0lA0McZAzvBm28NHZcIoJ8VfnpanS8YkX6ltC1Kb7KNNhC7J0 +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/clients5.google.com.key b/cert/tmpCert/clients5.google.com.key new file mode 100644 index 0000000..8dd46ff --- /dev/null +++ b/cert/tmpCert/clients5.google.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAvGRBXDite9zXCuDvfRjLJn7pSg0RFTS052gMJuuy3L4v2v/3 +MrNaIDygWWLcmMP8u/7tFIHOvvQkQXhzmJvftkQA+TKQ2FZVm/ZL6Nta2AYpvUY6 +L+RxfrgqQjjQ0Oi7jD6z9x4tClDk+3E8M/tK+Bd+7LvRJNMV6KRJLDV+BRI/yI94 +bqiV13CtLRoaGX+r6B9UKkX/goWASUp+sa0hyix2feWFgNhNlRucvO1deogBEWWi +NELXjWr+eT5gVTEh59dy2qxOfUlLzdW77KuO6cuDkcyFC83O0nc374qAfslfEPYa +v3gUJHHzSnyhQAOnQ4mWiABTFsBq1hE+cRAjCQIDAQABAoIBAQCchKrs5MX1v5AG +IMW4aE34CL7n4B1OQgD+tSpLd82dqoF18O2++NWrLNOIECP44/PpeS4duI89hPdO +UbWwl+hwtOUeJQ3EP05XCnUc3IoIKm6pK1ySh7hnsLijVjLfLk0LgtjgOfjvti/Y +W8bJ5UDvCA5SvuRPNPTh2QRWL4cozAXtcHRtPVUFx97xz425669wHtC7QOulTKKL +sM7hcGwd5g3S7fcTLosqefCboubnA4OVf0KOYVQ5AHBbMTlZW3aivSVb8JCafag1 +immejDvHfZ246kFI8gUk9tj7nc2zFWxOzBb2GJWRTxpWsMI0BrnKo/NUaTH6rlze +GJu+zRoRAoGBAPiMoFXyOwEZHWNVCjqVarpQSDBqvy+ImykY7YpRgB8AlDa05VUW +p5gzQc0k2t0aAEhTErIKhINUNgfotmBJHIntfunVEDLO4L9Qho2aRIGlqMBQ73cB +Hq1/DZPt/2XPOfX6YdPz1UlobGmz290SkMcMjigFeW8ng4QXrVlA+X+NAoGBAMIJ ++jGQz5JP6sR1sk2X6B8JFBB0+88FUMkW6VMEyKWb1TF2yenM0Yp0wqZzsENBjI6N +AlZpVqejdzjGYGGtyi93/5bJtg8E/O3y8kCLsCf8pmwEOfj6N64A/11nZp9nh8cj +kDOLyPO7u087hhIkKc7y16b7/wecd+7CA1CUuSRtAoGBAOH58VjS+ESCUg7a5Ybo +DHZCwa+LjjGocPHHoUjN2r/VJewrQgq/ozak+6GJbZfyqOkY5nmLSHmi2dENCqu2 +LUVV8bqlpamcIAixLPSXmsuJE0lvDJlVIlA5oN2rWDZ3V0pGECXFnli0oUTlavOv +ioP+7UyD1aly8obphAkPIwiNAoGAF3eJcLEoyXMs23G4jLXQduBsMslTIuhrqsZA +la/AbHb6Q68wIDyLIwmX+PWI3blxvFPFcpnuxvt4Eb+8LFQOXctPd/cRM6PQyx5U +ugWq2kst/WZNdJUeYsbwG2XD/YdR3n2olPNU7FVKA/0Y69y/ya2I80MKxurfflqs +d/Rkp8kCgYEAlj626mTJ3/gFRZw2n/M71pHplcR0Cn9neN5+sQXx+2L1gq2iQRpD +APVLvJa3ZlcI+tAxHswj2Wn+FRJ91VfNqHSM+w4qeldeiFCwJfMCdFAUbCHYp416 +eB2xDSFzTXzRw4OubiOqhVItSsmBfHrFNpVEx/aysHmPXlXVARjyMa8= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/engine.adzerk.net.crt b/cert/tmpCert/engine.adzerk.net.crt new file mode 100644 index 0000000..61cda97 --- /dev/null +++ b/cert/tmpCert/engine.adzerk.net.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTDCCAjQCCQCX01C4JsnjpDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjUwOVoXDTE1MDgwODA3MjUwOVow +gYQxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEaMBgGA1UEAwwRZW5n +aW5lLmFkemVyay5uZXQxFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDR6VTB+ZZeoatYscEGfEht/QDYTeuzh7p1 +eTxiy1aGSnucB0LI74q7vQj8d+ku9tHR82m9omGPnv8OmkipBhqdf+rgSXQqXGpT +XlIIsmtii2R+omIbkkDDYPVgvv4nPAFn6/H9eqDa6mDwweam+nMlJgFa5GJAKf1P +5+xdSbL0HUNvpWjrBanWYOdb3ol6RioiIHs7YPIkGhDSfqmh/yX2YGeX5YlZRFTA +wQHSAp3xQIfRq9FwNkyiAFZyf5qOSywdSb8c3YsKJLqhwK7OG1OyZb+MZbx0ZpA8 +FxIlAqqsfGRTjhTa/t12cda/8Y+3vRewPot1++ORZyiooQXQdYNbAgMBAAEwDQYJ +KoZIhvcNAQEFBQADggEBAHlyzqYkK3giexN8OFVnlVKKCSgwJ109tYCS7MTOAmeM +696aD/edb+K4PzemTNC6X63hYtUG4dLiB2MsMFNuqq+yNCaFWgpa3426iazN5TGe +1rAfkghrNYlkUaPzQQcFr1QZi1nJ84WGkL8RTcAMuoMn3XizHOROjGIKJd/v+9r3 +eZBBrqzEghxlXeGdqFEUhEf0JUtxdfb4OboNsje0IHrDk8PkpGSwsTU9Dp9ftAJz +ggRPU74KbBl4FWdlyh2KctjsKKhA4LK2SAMtNXKB+Q+1VjnzGBmjeza/D1wsgWTc +ewp/rLIpF+HjxHpbyDt2n+TubwTwwHFptyVHmGTcykU= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/engine.adzerk.net.csr b/cert/tmpCert/engine.adzerk.net.csr new file mode 100644 index 0000000..0e1fb1f --- /dev/null +++ b/cert/tmpCert/engine.adzerk.net.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyjCCAbICAQAwgYQxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEa +MBgGA1UEAwwRZW5naW5lLmFkemVyay5uZXQxFjAUBgkqhkiG9w0BCQEWB2FAYi5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDR6VTB+ZZeoatYscEG +fEht/QDYTeuzh7p1eTxiy1aGSnucB0LI74q7vQj8d+ku9tHR82m9omGPnv8Omkip +Bhqdf+rgSXQqXGpTXlIIsmtii2R+omIbkkDDYPVgvv4nPAFn6/H9eqDa6mDwweam ++nMlJgFa5GJAKf1P5+xdSbL0HUNvpWjrBanWYOdb3ol6RioiIHs7YPIkGhDSfqmh +/yX2YGeX5YlZRFTAwQHSAp3xQIfRq9FwNkyiAFZyf5qOSywdSb8c3YsKJLqhwK7O +G1OyZb+MZbx0ZpA8FxIlAqqsfGRTjhTa/t12cda/8Y+3vRewPot1++ORZyiooQXQ +dYNbAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAxcgQrOH+oqiiTzNpZuGDLGMp +PGbjhGxxk1+HkcmYAL+nQiOQ9hhFQQ/+Z+dbEJ1qWMI69IAMJrFk9hNcEdOWQDJg +CKble2XNwTesokjWnrRt2LhgLexPi7XxA6nvywnINdcMhrvNxGSyptULiHkSP3BB +FcyUs/0qJGsvOQ9GNFseWUko30eEKjcLpKRtrH/8RyI5cDn74XjqA1xkVzJ5x48w +ZfoSLKRpj7ER/s5GPXttdA/QWr0oM1LzEqJL9YFEtp6VI5upwIp/96czoXFTZCdp +0HMURCu7yp4E+Yxjws2juGzNqmUUKjgbRV9UbXFCzV1rCsjsUXzEEHg1qMOOvQ== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/engine.adzerk.net.key b/cert/tmpCert/engine.adzerk.net.key new file mode 100644 index 0000000..0de50a0 --- /dev/null +++ b/cert/tmpCert/engine.adzerk.net.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA0elUwfmWXqGrWLHBBnxIbf0A2E3rs4e6dXk8YstWhkp7nAdC +yO+Ku70I/HfpLvbR0fNpvaJhj57/DppIqQYanX/q4El0KlxqU15SCLJrYotkfqJi +G5JAw2D1YL7+JzwBZ+vx/Xqg2upg8MHmpvpzJSYBWuRiQCn9T+fsXUmy9B1Db6Vo +6wWp1mDnW96JekYqIiB7O2DyJBoQ0n6pof8l9mBnl+WJWURUwMEB0gKd8UCH0avR +cDZMogBWcn+ajkssHUm/HN2LCiS6ocCuzhtTsmW/jGW8dGaQPBcSJQKqrHxkU44U +2v7ddnHWv/GPt70XsD6LdfvjkWcoqKEF0HWDWwIDAQABAoIBAQC7K6g08l0/cj67 +7nvkUYuv70oClbBWu+7p8rmCijdTtTR1ExBc5SM6dbt+i1l0VAcRg09FFXaSvr5F +AhNKC7RNvhLr/PNFFnSEc/UH5jfUfeCU/iwm04lF7b2+j29GAr5qMLvtPpwRt63K +38rQFz/23uWUa1KkTgyeZHmhUSbtfU//SMqZwnrBfPosY/1yzowSMAskZ+Rg6M7Q +3Pfjqclhmc1W8RMY++brDafo0F3eTnPijbBrh+XKane5WmH5VsJCnzqHzpzcOzV5 +stawWADYdKKndzA3EV3Wrps102ldPnww6U0SBasMP7VsQOcr6MMdDok2SejDKAAp +HP1dxvkJAoGBAPj7gF/9EVtK0QdiJ6xxLtr6+lvBdWlPOcq4fABkIH73GX3aAisF +OfBVk4j+Mipbz1uwPiGWS+UNlJKQnZRD7w9eZ1Kjnp8IkLFKq/H+O/DMRIdAYYlK +ZbTYyJ5s1bvp0aTXQu6uyJLffCy/x5jDTMIJ9+4/F2/Scq0LxyZE3V8dAoGBANfT +6xhY80ZrQCDpBLcPMqiyheuoiS2Thc6zSUoKQJolibmE6OszcpJ5XC85R+QBQrV8 +WEPWbVlqUgpjNAgNgep0+V1/+5l0j3o1BxySIHQMNtavDtMdPVRriTdjxccHN9sH +uRpATJN8gDC6PaMM6z8GBzkURT/wPojGxke+SYrXAoGAWm0tUK9esGNZy26wrgZl +WA6zAsQeWmL1wFSEZLf4vWQNFBIrm2hIhKrv7F815QB3LPuzdQtbAROPlDOFp6WM +m25T5EWchHHd6yYNkNQe/POTJ/QP+IbWrXnWUwOAFMF07INpwbolCoK0XKRCX47+ +v7JTI2oynuA12fdfGt0D8VkCgYEAp18RNr1sU1TC04LBBFFF4OsozbrSPsTjhIsm +r8NJnAC2UGdQ1Wz9UbfJlFmgdaHAoMtAC8OS4z9/Rczuwbvv3uk9pJOmgreQuJ28 +2Rw9DKGYOV5iabeIIxqNu6Wk75aaa0IO+tuYRtvK8X7MY9CV8jbzjQE6Pr5JUHqN +s39OutsCgYEA3q0Z7ov293Jcnig7hUCK/xJcYHx20lKmL4ygsUnftS8dkbli+afs +9kqgaMKUqbpryqfFQc/VpBP9cQTaMYXh9YmHrbQqFfxQh7g5l1z2DGAb6hm9OSxI +W1Siy/ptawBeYLJgveQF8zx86dOF9nGczij8MqEGVZ2xS6UYYZWmbmE= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/google.com.crt b/cert/tmpCert/google.com.crt new file mode 100644 index 0000000..f721bb6 --- /dev/null +++ b/cert/tmpCert/google.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDRDCCAiwCCQCX01C4JsnjozANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MTczNFoXDTE1MDgwODA3MTczNFow +fTELMAkGA1UEBhMCWkgxETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQHDAhTaGFu +Z2hhaTEOMAwGA1UECgwFYS5jb20xCzAJBgNVBAsMAklUMRMwEQYDVQQDDApnb29n +bGUuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAm3Xsk9qNoMnnEumSTwe97VDnSvv7KbPk/IXrturOmGbG +Lcs4xomO5e0LVK8NkZY3QiqYxCL430qVkHZ8UKPOR3bW2BRDH2nkbuBRVeNRBpVS +MV/aJ+PaTYhjlhsyMBQq9CNJKYFZvtra3GQ1JcWQ3m8uIBH2E7HvU75iDyFqX4Gp +GymtMaM3pVEQMMk2u7HLH0gLN8J8Gtn4ZmGOXXxbDpIeEnuGae+OpNUqcmMcNO39 +oKUtq+sUncFwbjlGGj439qCOYcMAkHo/+46kDqs04c3pZzqH7z3W+weROU6Wjcc/ +/fQE53Sw8pAR6X0FfM7PQA4VXNF5r9LuwEcTY1h3MQIDAQABMA0GCSqGSIb3DQEB +BQUAA4IBAQCsqIABdZkZKp024nbIlPd3ihysSaa3sHEAEHARznhQgYzTHcL+WfAX +vGER+7W9VJErQ+Dr7EWl8q2vZ8q1WBlKvq1s0hoeXQZAJhAVkCjiGfLupjWTY8sO +eM5B2E+YL8Mq4XwzRhIwYgty6Aa/LZ9rPiN8SrdKZ/MrbpFk7O1LGrfbKt/6j58m +AVNko/eWwArHpylvvERvwQ4TWSnFFZswOY4tHzdzpgDwx4iEyTmBvkJCG011LfYh +WtwCLeIkQNYukUDQiOORsnkuPz7bIV2ULw5HQa+xuwvTOplO2dyQ+v6OLF7qJCvB +L9YTAbQcxPIe6EGQsQdFHF/7f0KicNJg +-----END CERTIFICATE----- diff --git a/cert/tmpCert/google.com.csr b/cert/tmpCert/google.com.csr new file mode 100644 index 0000000..c38e161 --- /dev/null +++ b/cert/tmpCert/google.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICwjCCAaoCAQAwfTELMAkGA1UEBhMCWkgxETAPBgNVBAgMCFNoYW5naGFpMREw +DwYDVQQHDAhTaGFuZ2hhaTEOMAwGA1UECgwFYS5jb20xCzAJBgNVBAsMAklUMRMw +EQYDVQQDDApnb29nbGUuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm3Xsk9qNoMnnEumSTwe97VDnSvv7 +KbPk/IXrturOmGbGLcs4xomO5e0LVK8NkZY3QiqYxCL430qVkHZ8UKPOR3bW2BRD +H2nkbuBRVeNRBpVSMV/aJ+PaTYhjlhsyMBQq9CNJKYFZvtra3GQ1JcWQ3m8uIBH2 +E7HvU75iDyFqX4GpGymtMaM3pVEQMMk2u7HLH0gLN8J8Gtn4ZmGOXXxbDpIeEnuG +ae+OpNUqcmMcNO39oKUtq+sUncFwbjlGGj439qCOYcMAkHo/+46kDqs04c3pZzqH +7z3W+weROU6Wjcc//fQE53Sw8pAR6X0FfM7PQA4VXNF5r9LuwEcTY1h3MQIDAQAB +oAAwDQYJKoZIhvcNAQEFBQADggEBAIFYy7b9NPXIpXVeXF1fA7KlB3P+kffDueU+ +E2NRjcjI5FYTieJEkT4JoxXLUUDq2YiwYzUMSmTBw9RDvG1xd/dhrq73WScV19ij +e+V8Gw7Z7EAvMRF+v4IM5JylH+ZSXA4/HppWUwWBAaTd636QDENlnBIoofeEadVM +GaN8ZjLRWZmYarsYMb9d637sV/zDvy1KaygO4OHVAgPxFTxLeUfT295NPT1iBqxE +z1AfTr/BgtAbVhgOPpIky6ST/4ryC23gwmQBz2BRvI+3AWYp+R0t7yo4YZJkojtg +H+8JVO/q/ItPN70lvjwKls7ceXKJF8Ya4edACv3F77sWg3sjNiI= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/google.com.key b/cert/tmpCert/google.com.key new file mode 100644 index 0000000..e68ee45 --- /dev/null +++ b/cert/tmpCert/google.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAm3Xsk9qNoMnnEumSTwe97VDnSvv7KbPk/IXrturOmGbGLcs4 +xomO5e0LVK8NkZY3QiqYxCL430qVkHZ8UKPOR3bW2BRDH2nkbuBRVeNRBpVSMV/a +J+PaTYhjlhsyMBQq9CNJKYFZvtra3GQ1JcWQ3m8uIBH2E7HvU75iDyFqX4GpGymt +MaM3pVEQMMk2u7HLH0gLN8J8Gtn4ZmGOXXxbDpIeEnuGae+OpNUqcmMcNO39oKUt +q+sUncFwbjlGGj439qCOYcMAkHo/+46kDqs04c3pZzqH7z3W+weROU6Wjcc//fQE +53Sw8pAR6X0FfM7PQA4VXNF5r9LuwEcTY1h3MQIDAQABAoIBAApsS6JWIuzG3LFN +67tUv40rwXYrktlm8FFmATnQYG2jZmInn/TfwC72R64z1msOcUIEbR2pYppF++Ul +rIwTj38HHrx6D04J4YD1lT528TXJySr6TDwkcLyGCndD94d1srOPshYQUB4VulrQ +dSfFKUNgnO0VhzQm1+77csOk7+bbReESIhBTBOqIXFVSW0+V222WdznxXeQzqcX7 +E6XCquk2q+O77emQoGN3uGbNUg+ZFb9k41l0pErl6TRF4l7zyAfJE7CAjmUmUUHa +CxWyBadSWz0poHtl8Hszi/g5K7v0TfpJUq5XJOHxOeMb1xPnky5LBLX6sFUWzM// +52OooIECgYEAzmE6vbeRLbll0FXNaR2AmHzrJZQHDAbbl6FhPqy9j24e7T2mBqQ3 +GLYGg4pDKqfyLS9SHq+hmPTYVhb1x/wBltpyNkCbiYhr+Yf9SjAAg6gmXmnW35vp +VW8Gm5Ef6WvVneoW7OELC913lyBm9iq/+7sYArUvKOD0xiMSZjNYG+kCgYEAwNaY +4C+MqiqInvTPuIfeSo2+nKw0KjCRUHok68gl4PUR1IWb9SPW4DImolT5F131U7xT +8oiyfAlDSQ5B0uXUwCFcKw9P2JP1Mvt5SvhakA31OxVXrSjkL3LVT9vaFVrN+y7S +M21txLaW6qCrMqRI6GJ1fXKmubD42RlghktiHAkCgYAJk4dnQDpTVdP8m86hPwY1 +jS5YGwtMqpDL82gQwXE2U5TJy1+F1V7dHa0ls2e0dgCNyjFUTTABafMT45LaCb6F +InPEQrE064ifFolRRPLxKP9GyEB5NcHY/gLfexdw/Fj4L+GKclLR5R/kelNsvsUT +yDWwAnpCulWBUCVNarp+6QKBgQCF3DGQ5dD6Sr49wWj0CnS3Qf/AGBW5967Xs4Iv +necVamkvInQpTfCZ/pYs91lV7CYhM0j+wf9L9M4dR2VP9bSijkXBqkZd7A84jbIb +5ZxQBTBnDCCplgoYGdmTLuULD9aOd2j4xAx/kdPfGRrd84acscQnCdBMdFm5slD7 +yBZZqQKBgDwR11WNJtV3TCUA92o1lwVUoea2y65m5OSpPYgz0xPipsULh95k5ORq +BfYuTVQMpgcAaD+39RxLn5cEfmwuaUkcfmCHlxwf4EuXagktT0hCpLGbWwpxsa9/ +OMC88Xo2mejmsQge2nK/EA8lFGGC4oJIbqnCxEZMXlirpj5qcBSW +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/i.alipayobjects.com.crt b/cert/tmpCert/i.alipayobjects.com.crt new file mode 100644 index 0000000..f5fcdbf --- /dev/null +++ b/cert/tmpCert/i.alipayobjects.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjkzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2MTgxM1oXDTE1MDgwODA2MTgxM1ow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTaS5h +bGlwYXlvYmplY3RzLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMW+Fx+/SEYQ89uTQl8BVXAwwgIVBnO+ +ViI+yb5pPYGT1LTKqWnkL25D+pyinD4jXG4PLYfZ7qUfD0gtwjvBODxfHXTor3AQ +h2ofVP+CP/wMNeu8m5i6xT3JUYv82zbupngUNUXkN/N9rYue1yaClhA2DnSl719x +98Ci00jcNM4/IS8dOjmUEfBuRqURBjlhLFxLkKvG3CvdB6/RP/ZkgIGEpkRINlEP +RZzz1oBRZ6k66qGZecmLwu63SFLZqAGaOdFsyLPRAShg+RSPHIZQngO9wqOyFXud +5e1mcdyezHRhDwcKPU8hzadLz8NSZjJsxsMYyiAIFnUiXtKMs+fDLXcCAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEAVkDbjUGwQnq+lC3WbLlz1Q46HqHaFigfJwJdob3/ +/SNheRBwCY+qSgZizwMRNV2Z1mm3GvSULYXtLqSBWchePb71ipClOcz7uJdjynz+ +sd+5LWclQ25O9fMMyoQ7xNpq6bxXp2psQei9WJmQ8MG/6sDvAEZiW8SRZ8P4guNT +p9H5wQUWxT9z/2gOqSFvskBfyRww7fjSE8QOYvO1APA4ZBGTar1b7FtrbbvM6b/K +/UI5dDkF6DVUH/JMH75HCIev6VQ2buYrmEB2zlP6E2I03R5AkfYAdTcnO/kVyQ0I +ta7NEGBt1GY2MJwoTaXMEIDsfo1bHeLP8jx7mD6Zm2HWjQ== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/i.alipayobjects.com.csr b/cert/tmpCert/i.alipayobjects.com.csr new file mode 100644 index 0000000..3c2855f --- /dev/null +++ b/cert/tmpCert/i.alipayobjects.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTaS5hbGlwYXlvYmplY3RzLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMW+Fx+/SEYQ89uT +Ql8BVXAwwgIVBnO+ViI+yb5pPYGT1LTKqWnkL25D+pyinD4jXG4PLYfZ7qUfD0gt +wjvBODxfHXTor3AQh2ofVP+CP/wMNeu8m5i6xT3JUYv82zbupngUNUXkN/N9rYue +1yaClhA2DnSl719x98Ci00jcNM4/IS8dOjmUEfBuRqURBjlhLFxLkKvG3CvdB6/R +P/ZkgIGEpkRINlEPRZzz1oBRZ6k66qGZecmLwu63SFLZqAGaOdFsyLPRAShg+RSP +HIZQngO9wqOyFXud5e1mcdyezHRhDwcKPU8hzadLz8NSZjJsxsMYyiAIFnUiXtKM +s+fDLXcCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQBlcNU21S+lobAtk9iHR1te +vK1kLATC9AH0n547GN0fBhRFAUl/Oo6cdjtNKRg1XlZ+LXDahTkiN43HgAYxmOTY +vRoP9vRVgwn2KD5T8pVn8AYo0A0P1wAVTttxc2fbU7574MLLrZnrHyFMx0IL1S4u +IJboxwn9wYr+aoBQEuTDyegS/FekAUz//KDW2Dajvv9W38mwlfTX/0/fYqwdDKqA +mLIzniYvY3zxSTQ3lPAh27PHyrrgGR4Cho03uvhXq1nXsX2xQhUUBTanBPqEPWPJ +E8nOe1xIklp7gU1gYFGItnK3+HSbfAWs2GGH/9h+TU3TVRpelDqbWDSj/KL+62YY +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/i.alipayobjects.com.key b/cert/tmpCert/i.alipayobjects.com.key new file mode 100644 index 0000000..181a60f --- /dev/null +++ b/cert/tmpCert/i.alipayobjects.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxb4XH79IRhDz25NCXwFVcDDCAhUGc75WIj7Jvmk9gZPUtMqp +aeQvbkP6nKKcPiNcbg8th9nupR8PSC3CO8E4PF8ddOivcBCHah9U/4I//Aw167yb +mLrFPclRi/zbNu6meBQ1ReQ3832ti57XJoKWEDYOdKXvX3H3wKLTSNw0zj8hLx06 +OZQR8G5GpREGOWEsXEuQq8bcK90Hr9E/9mSAgYSmREg2UQ9FnPPWgFFnqTrqoZl5 +yYvC7rdIUtmoAZo50WzIs9EBKGD5FI8chlCeA73Co7IVe53l7WZx3J7MdGEPBwo9 +TyHNp0vPw1JmMmzGwxjKIAgWdSJe0oyz58MtdwIDAQABAoIBAQC4AgjQoRYnJTVX +OXREpiAUMzsF5vzHDfJnEZh4WMREZQVFa2U0xYMhj56QzXypEgy72eHbjf/Vpc55 +syMQqd+jxjrKBJDkrmzkYt2cml7iM5allDAScpKCyWjZ5GU1e+Rqzxs3u4QZT/UD +fL7m9hOgaD0RbSwP3CTZHGuSXF/DHzb9kCZdpev862Z6AYzvFsAtswufWXTC0y76 +vT571iBhZITpNJ+XryGieZyiYZKDyXegPaLL7N6q7gdIZ4aevvNTiufRsq1BglR/ +Y/pXH0UoM+ZdcY9BWZM9Qncbvl1dhz8cAo8xBnyuPAxrsu8zZe22Zknow/VFnmcK +1+JjjbsRAoGBAOSyyceCkBdftBN8Gbnoktqhm+msKgE4AY95WGHa7RXix9nx69yP +AFlsF3x7ttYQq8Fr12xyzPFgmWOcQi0KVA/a6DX90fied26I9uZdZ4SuL6YU9rGX +LmpZu6px6d12Ghio0vH4F/J7bFSu3nsO5D6CmxLt6JU2+8/CVzzK2N1vAoGBAN1Z +RAexq6wSfJZ27kcC3hj0+ac3EaP5MWCfKcXJANQ7vgbcTQaE/ZN/iLTssDVmL65s +N/RJ2wEGMMpyMtKCSNRFq3N/gvGZ9kbzNb3l38H+ZrAlGZwsB2SLYLZW6H5+cdPA +lVXx/MGVQjrtO1EBGT7Ah+xaCkFzh9bI/GIdK7x5AoGAa4hBZiTW2ZavVkYQ1qAr +hM9ePwYrjf0mhq6YxxIoThUewTSGIWO/10wC0w5cjtSx3bV2SlDEWm6AURzk5Map +dfcJHnHlK5BfOcL+zJx4kyNP1jifMiuSsIDWw7LiMrZYWOXwocN0hxhPfJXomFYN +LfM9NS5WIOsEhdCsMjJyu9MCgYEAhexQgOc6my3EO7VRjZ1qi2cM9eMXxUIsYe1q +9MQcwEw1OSlpYRxt4CQ1rmHWaziceMf5QtC8tO3t708Q+NTjA6vzhDoOG+evXlYg +mfjPXSxzLPgFerwY7Ph3V1tV59LRQ/EtaYa0Ctwn6kdGsEgd4h3TH2mK8vbXpViN +ez9zCuECgYB4F4c9annZHaLTm2wwNbrcdM9/fefvwkisxStp4iGMlv1QvM03vF5A +j3Rjyf/LT6ANrwAYb255jcjQ3XbPgAuB0Edlr7s/90ZgPBKSdv43pvqZMFdHe0ut +mz6gr7YufOapjPAkYvwhbphuWfwG4Qg3wfkX2/qQps45BF7vf6tmCw== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/kcart.alipay.com.crt b/cert/tmpCert/kcart.alipay.com.crt new file mode 100644 index 0000000..109df4d --- /dev/null +++ b/cert/tmpCert/kcart.alipay.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSzCCAjMCCQCX01C4JsnjhzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA1NDAxOFoXDTE1MDgwODA1NDAxOFow +gYMxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEZMBcGA1UEAwwQa2Nh +cnQuYWxpcGF5LmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJluRIahLAjnMHzE1BTq+6ngVq/AryxI9zoV +fbGd8riYOpRY4fCOBqJx/LsK3av883/0N5z79Ibaz5LyKAXbftoAWKen8d74rqZq +Tbi5T9jvZ1iT/IKNK0HWiT+V7PJoF3o1KKAIOQ3HQWbfm+7oNEt8eVuWNE26u0RZ +SDjVv+ZguI5DrUJwFLG9JsxEaSUokIfQ7TNTY03xf87C3RbqQQXsTyR8pE4SKfHL +IvUck1+DyDAAmbxHNQnmx4axlskPJ0rgl8NO80fVTtpdz1xWPaDUKh+VvDqU4eW9 +nIC9e1htaYWHuL6OADZWXKbp9TNwln6W9lIgJsbP6MplRvmg1l0CAwEAATANBgkq +hkiG9w0BAQUFAAOCAQEAsbwh2pf63X5Rd+5XIS7je/j6oomP7HnYMPM/OMixcMDP +pjagGjyn60hb0Acwn80FqlIGBwb18PXN/FKa+w5u1TyST7beQu9LQsR8ZwZKbz3d +YXbwuTpYjLu2d8w/muytRWxeR1F9+va2KfiNA9xt0xyr/5ywFLodSM6BOqVHY+ag +QzDVyGGRwdl9DaqcTRMjSQI2Sc0f2m9vtVzO5rJV5G8KwKVsn1PqHsEg3YiZGiFW +sblWO8ER9ViGqOd0j6gX1BnxArvmceO7kYyH55sVxxJIJIFqA00nz48wYGd6Of5k +8+1aUmVAHQurAqdJDRLQ+mgCiURj9xnY/ZvEFFSL1Q== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/kcart.alipay.com.csr b/cert/tmpCert/kcart.alipay.com.csr new file mode 100644 index 0000000..3de3744 --- /dev/null +++ b/cert/tmpCert/kcart.alipay.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyTCCAbECAQAwgYMxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEZ +MBcGA1UEAwwQa2NhcnQuYWxpcGF5LmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNv +bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJluRIahLAjnMHzE1BTq ++6ngVq/AryxI9zoVfbGd8riYOpRY4fCOBqJx/LsK3av883/0N5z79Ibaz5LyKAXb +ftoAWKen8d74rqZqTbi5T9jvZ1iT/IKNK0HWiT+V7PJoF3o1KKAIOQ3HQWbfm+7o +NEt8eVuWNE26u0RZSDjVv+ZguI5DrUJwFLG9JsxEaSUokIfQ7TNTY03xf87C3Rbq +QQXsTyR8pE4SKfHLIvUck1+DyDAAmbxHNQnmx4axlskPJ0rgl8NO80fVTtpdz1xW +PaDUKh+VvDqU4eW9nIC9e1htaYWHuL6OADZWXKbp9TNwln6W9lIgJsbP6MplRvmg +1l0CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQBoLtaxWEVB+WamHSx/qhKWGMyU +mtAtriz6kxx9jttv0Hp/qFRRqVn4H4q9MY+rblbmiq1U4RO0YNvsjBglRe1RAcGI +MYW7pR8KGzjcbK1X2xAiqEu4YNY7G9vbLVr4c+mcdbHTBkzPzQQWP1pNl0cMQlhK +mPzy2qZovIju5DLOxqgQN8XYpRf9gbAcZkKgYmDoPirNIV8kBSM0qhxTQ65hzT5j +Swpu0G81ZSMW6RP/9XM3QQs/9S5tVDzB16IzHShhkBcQh6Z6YpKCOXL+Zfj0IAxY +CtZOJTC7Udzm3SvBR3hy3tDE70lzd5D2Gx1NhJvlJfOxI5Yy93k/n/XCiCYM +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/kcart.alipay.com.key b/cert/tmpCert/kcart.alipay.com.key new file mode 100644 index 0000000..20125ab --- /dev/null +++ b/cert/tmpCert/kcart.alipay.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEAmW5EhqEsCOcwfMTUFOr7qeBWr8CvLEj3OhV9sZ3yuJg6lFjh +8I4GonH8uwrdq/zzf/Q3nPv0htrPkvIoBdt+2gBYp6fx3viupmpNuLlP2O9nWJP8 +go0rQdaJP5Xs8mgXejUooAg5DcdBZt+b7ug0S3x5W5Y0Tbq7RFlIONW/5mC4jkOt +QnAUsb0mzERpJSiQh9DtM1NjTfF/zsLdFupBBexPJHykThIp8csi9RyTX4PIMACZ +vEc1CebHhrGWyQ8nSuCXw07zR9VO2l3PXFY9oNQqH5W8OpTh5b2cgL17WG1phYe4 +vo4ANlZcpun1M3CWfpb2UiAmxs/oymVG+aDWXQIDAQABAoIBAFBgyPtyodwEKY2j +m6tdsvu6sA8gtWRQ0VuXeKK9KTP1Y/LlYXAhJ26gopLmTVzVhkcJDL1r7R1cshO8 +UqVG6PyR49/pBrgVtYEu/YqBYkg2mwB3fnhyNjAmkP5Dr78KMwptoNu9kw4ZzbRz +/n+5G/RTwEvvs3TpF0PmNgS4TfEE+NDSxZxKF2ijZS6TyLX50DiY+/O/8WpU44Gu +NRzQ6DsGAGIiITsPBGkKvd2ZK4+QQJ8pYtbKwdb3+ap64uHW2MlmMdRDS6TFsJ1Y +xiDBPpzQau55Mm4BWzkZithnsG2ePvPPjZ4giaS6TDYcwcOfbdWTcYBSwkbxlMge +KNymfQECgYEAy3n71e4sLBqi7I8vjpJQm4ERVpSt53QR7pgBrfD7qgCn81PWHf+U +Yxr03nsbTZaVLxomUeQwlTrLR3hZZ5KoVtI4ijB5iums4iO+nlc0LVPl1kbOpyXV +JLQJ3RSsj/kBht1532EC/LzVxJwvKtBxWV4CSSICcB7awEWBBaxBd50CgYEAwQkw +SH6F1xPEZf4sFfNY/u7N7irGZwnLEDqoDN0RbQEempyX+Xn7iFbgedjKTY5yD2Kf +nwuQE5nqOy2TPHymdRWEOxlNFVVAo94yin4h6Wwod4LwVthHgM8X3XEh6APcBm6I +I1XJh5PPEqL/JtAt7V+um/cnoisMo/Y208T2fcECgYAbzmO37IBk1o8FPNwG47/Y +QF8aMd9CDf6VWHiCSLhblxNckUxldRPWJ0znSnOEuttQQIaUElcBTbOR5MRy/vu6 +QagwWkeB0EUr8i6OfORIfXqfObXr6aOjDGd8quKaGjE3OPT6rcs2tqeP4rgfZbTX +vZ0aWWdz4wOJ2vWyzMN1kQKBgAyZAeqpPyjTJG0Xkl74W6V/hjb12a7dx7/OZCs6 +vilj+lBSyeRBHrY+HTY2fLVlB3KTmCE0CvoMgGnORp6a7+4SMmf89bffsXFATgIV +yzbFlTp/dBnm0XvJiCAuguz2W4Sb8AyGS7mqXsgzlP0+dtDX/rg1AAQoVRHaPqfB +YejBAoGAfV5/fnO2rzV7tS8t/Mz5Oz7T5bQ7zi6pQnhFRoRnQ4U3jZgqxekVVUT7 +aF4ehAx/LIkR/uE4kGyROzD5Zo4cf38IfFg7+HYAyH/Fq89FsoDa/XigLbM+qY4l +VQiGgIwvk46UPFzIWc2nSj0FwQFqIpoMKM6jII62H320CLPu2aY= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/mtalk.google.com.crt b/cert/tmpCert/mtalk.google.com.crt new file mode 100644 index 0000000..b21b3a3 --- /dev/null +++ b/cert/tmpCert/mtalk.google.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSzCCAjMCCQCX01C4JsnjiTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA1NDAyNloXDTE1MDgwODA1NDAyNlow +gYMxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEZMBcGA1UEAwwQbXRh +bGsuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMQxJUFjQBVTHbaF5XhTVhraKGcYni3K8P8t +MhGJRayGaQROqKx+YiIstLGYsPg8UQoMPzCfioIW6qoj+0VJysjkhicdvamL/0bL +jjMn4yJXICKDzduR4Wp40aaPJZzPz79+Y03AjsHAz6PqduQPiSjWcybuo6DJBjKe +ZcAvlK6vuyEynb5hnSx/LJNSBtzKXoP6SGwJ+M8lOHQ8tGqXqlbwg6XqGB6VqS5T +cSgwa2G7/4l468o8TrRb6MLKYVOxe00dH9+KMe+2lLF0eRhbZ3WZkWV1h+julfYk +H5zU3NkWRmCIJm0cTBu6q+jF5fIna4WaxNzEzYqyDddyaS1cLbkCAwEAATANBgkq +hkiG9w0BAQUFAAOCAQEAOVF3eH+AJYadkwUrXqOTqSkdun2vmhPBUQyaG71uH9cL +CBhS5Y4VRHon3AfUxZA5Xu3xATM6xA6ldyxPksSdAsqxKgwYCKal5sj1IseuSw6/ +yiqSeDU752j5dOXhMgUhlzpd2u9+XMiTunmFaAuJBj7pjrVewQgOeLXklCJRNwwO +qwAJ8BvemAa17ibsvq1JsWWegiAO0srrZb7ggqK7eX9jct+YT2eUNbTNY8N88wQ6 +3wCN2UOZYyA3bv2JqwiPBSSApXOYkZZEUa52UyspXWoz12oarw9aB7Xv0Kv6RW+U ++sxG2cO4UTmua7PUbR7rTmotJPBl3wb+TAGKZudHGg== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/mtalk.google.com.csr b/cert/tmpCert/mtalk.google.com.csr new file mode 100644 index 0000000..3ae9a65 --- /dev/null +++ b/cert/tmpCert/mtalk.google.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyTCCAbECAQAwgYMxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEZ +MBcGA1UEAwwQbXRhbGsuZ29vZ2xlLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNv +bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQxJUFjQBVTHbaF5XhT +VhraKGcYni3K8P8tMhGJRayGaQROqKx+YiIstLGYsPg8UQoMPzCfioIW6qoj+0VJ +ysjkhicdvamL/0bLjjMn4yJXICKDzduR4Wp40aaPJZzPz79+Y03AjsHAz6PqduQP +iSjWcybuo6DJBjKeZcAvlK6vuyEynb5hnSx/LJNSBtzKXoP6SGwJ+M8lOHQ8tGqX +qlbwg6XqGB6VqS5TcSgwa2G7/4l468o8TrRb6MLKYVOxe00dH9+KMe+2lLF0eRhb +Z3WZkWV1h+julfYkH5zU3NkWRmCIJm0cTBu6q+jF5fIna4WaxNzEzYqyDddyaS1c +LbkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQCc0dLLDOsmwAXkZuwjH6d5uFKA +zh4sPhQ5Pr2UQiC08R8ZxoldTDmICsvo6T9ofoVQIBfRTa4Rsds1sqhrWSYjnt0B +UoS/eEuTcFDMSufIXT565S5K5n5KQTEjXMtU5qvtvlQJZxo52RDfWsedQ0yuctce +Jk+JFBmc7TpsiF5MgzWrEJ53TMFekp74wHxy1f3nO50O7sp9C0ucgUh0q838qqea +/p8MAxm4d4q95bYZru9DPDzcJqhgYtBRIdLaw5V5j80WHSyRcrc1nquFOmAyuRp4 +Mctfub9nGPnY9gUxLJRZczTWIsjSponYTZGoolSk+F1qMpDE+1jwc1ZoRnDc +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/mtalk.google.com.key b/cert/tmpCert/mtalk.google.com.key new file mode 100644 index 0000000..b1bfdcb --- /dev/null +++ b/cert/tmpCert/mtalk.google.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxDElQWNAFVMdtoXleFNWGtooZxieLcrw/y0yEYlFrIZpBE6o +rH5iIiy0sZiw+DxRCgw/MJ+KghbqqiP7RUnKyOSGJx29qYv/RsuOMyfjIlcgIoPN +25HhanjRpo8lnM/Pv35jTcCOwcDPo+p25A+JKNZzJu6joMkGMp5lwC+Urq+7ITKd +vmGdLH8sk1IG3Mpeg/pIbAn4zyU4dDy0apeqVvCDpeoYHpWpLlNxKDBrYbv/iXjr +yjxOtFvowsphU7F7TR0f34ox77aUsXR5GFtndZmRZXWH6O6V9iQfnNTc2RZGYIgm +bRxMG7qr6MXl8idrhZrE3MTNirIN13JpLVwtuQIDAQABAoIBAE//hiRydvf7CzuY +v2ff+1U5rY3UUPN1M+2pHShfZASkTgAOnuKvKg6rUga0rzyZQ6YoNj/6Xf0LoSY9 +Q8EOBN0DqdwbWXHf/vh8GgCr/AbNpfHM8szcYCENINecuQaHCjwYKh/TK6K/nytE +eLQnzZLUVuICHsB6F8feJLlH7YWItZOs7LkAMyJIGMHH4agA9YKoVaLy2U6idnUz +24wWcUm3oPy4X9JOV2mhgg/UR774OS08BQeFcAy9zWyRq+4OFQOmFm6MwnhDjgpd +REbhPWPVRr6su/B0Gm7901lA9w6z26PEKuj0GoCYhIHe9C4jXmdAD5jz9MOEpY15 +3RUMxYECgYEA58EO5lzELUyDCuc2huXw6L8OwcKn7vNHYhGporQ2mhpZ6dVgzOaL +j8qUyiEphjWugCGmHNQ3KboQXg5+KoihL3tmcptnOyXJd7tkM5Ya01zCXrYoUcQC +9YHZKG/2q4bR70IxIUbsugzldLOaJof/bSx45FQAqNHkTFk5ZL8T+9ECgYEA2Lel +VhcHF0bUvTrKuBfa/OU76qSWo3c5SPPgl02AAKE0kHsGHOnUJg3pK54ihInjBQUL +bpBzcy9oHd1zko91UGkVGpCtUwg2rstwtHDobrnGNSDJ2RDBLg+41SM6Sh3xbwrz +y8jNWrzZXNo5zP0CPAkxwJECUZ4hNsvLsA2V1WkCgYEAoqRZOY+22XeNq5QyLx+m +HyEeURqz0j0HRqrQmu/QNfvyR+lIouPU49eu7d+yDY8U5LU4p5jDEdSTcf7Hyj/S +psj6T8oB+398UTvAiXd5YgYCHofF6gQec39qEDfrK9tU741Lf2gP8E3mpiz5LLta +pZqFSPAu+ks65d3kKnDyrFECgYAqjUSFdtgJlfrHfPe41dZFuazeEZsSVaKF1HzQ +uILdnMl5ZO56Vt806Z5S1iXo6DoPDkKEXxCMGU7ULls297wNIdTm9mlR2FcEUyW6 +CEFbHFbyr5FycXu805FzKAuV6fMx3nCoHrFTk6kKNj8LJNJ/fz6plM9jvyy+WZ2Q +39n/oQKBgQDd1iOydnmjqOzejHTquxceIlhj5uv/OADvt1W3fCu0J4hrO/8YqfHL +0BOyc0EaXZ0jsXlZJNWqcNg3WD0M4cJ9+CoOQsu6E4PpbK32F9bk4gu+004xyyHr +99dDdjLq7BxK80CK0hUi9uaI2h2LlQrUmbwyD5OWAjyuZfFnSk+F9g== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/omeo.alipay.com.crt b/cert/tmpCert/omeo.alipay.com.crt new file mode 100644 index 0000000..0ab35ed --- /dev/null +++ b/cert/tmpCert/omeo.alipay.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSjCCAjICCQCX01C4JsnjmjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2NDIwNFoXDTE1MDgwODA2NDIwNFow +gYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPb21l +by5hbGlwYXkuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAufZ58W6MPqprpiSTQZG3aT7D7ulzRoqNpaCq +iAWd3Uud2HMKbkKLSwOrWy09z3OwwgmM/lo4c8e8Vnc41s8jGZNE4z5bX+8B/L0d +Tf4NUEziN2tzl3U0vMfTj8/r7kTnija92f/LkXcsAE6c5s4kbB/DaUIlRInjDiKf +O69kT90vq0Ganb1kvDezYcN9LVR5Ph3IT5tPCbGlcuDsLKPeNs9QoZNA7tJ9O8Kb +cZRh+dQicCxv2BpVWRUiBkt5/F93x/09VM/ZcRzmdBmIYGhFwNyJQFXECf558Bl1 +iGbtY0gEiPwxeHQiLfPAhLq2znwnsZ5DfFsIFl/IXdr8WGdwNwIDAQABMA0GCSqG +SIb3DQEBBQUAA4IBAQArLX1dEdNoVNEwNkiwwaI9w7mDYP8JRoA8Wn01/PPnv+QE +vXLXMp9mPMuTKqYTf02nVYk12pFcGDCooHguOVKlEal4betWGvbRpzYw1PgaXTpY +VlDhBKH7hpTzTaqLmC1o0PVlAlcwiN/H8j0inaqUN8ZSEtfYpGZSksTj21rZESGO +KVC1bX4SAtIUvRzseBWIzpKsZKrOkH7otPuApPNPtJs9bRO6H7hZytt21q2hZbOb +v8w9loPbSOZ+oXryBOWPp7u2sFT0X6lXWLKW/oSRXkVw6ReAoKSyQl7yow2FTe8v +9sjj3IrfkeMV0PfrHa8a3u9w7Rvy9D/xAE3E7GkK +-----END CERTIFICATE----- diff --git a/cert/tmpCert/omeo.alipay.com.csr b/cert/tmpCert/omeo.alipay.com.csr new file mode 100644 index 0000000..dddcad4 --- /dev/null +++ b/cert/tmpCert/omeo.alipay.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEY +MBYGA1UEAwwPb21lby5hbGlwYXkuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAufZ58W6MPqprpiSTQZG3 +aT7D7ulzRoqNpaCqiAWd3Uud2HMKbkKLSwOrWy09z3OwwgmM/lo4c8e8Vnc41s8j +GZNE4z5bX+8B/L0dTf4NUEziN2tzl3U0vMfTj8/r7kTnija92f/LkXcsAE6c5s4k +bB/DaUIlRInjDiKfO69kT90vq0Ganb1kvDezYcN9LVR5Ph3IT5tPCbGlcuDsLKPe +Ns9QoZNA7tJ9O8KbcZRh+dQicCxv2BpVWRUiBkt5/F93x/09VM/ZcRzmdBmIYGhF +wNyJQFXECf558Bl1iGbtY0gEiPwxeHQiLfPAhLq2znwnsZ5DfFsIFl/IXdr8WGdw +NwIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAG6G+Opzy6SruvK6asT7P+rRe/54 +kIDUnltiv15KKW+aYPmGXoG6WbA10kdFu95gFaryeYC12n0zcDOWK25QnFNJVinj +RW916nhmt8TH4VlXJD5NjRN74sYKU/5dx+QEd55DqHNixSolhriAZ7fxBC50/fd5 +wV0w+XabKAk1IrA2H8YOJG8D9Ego9YBiMQ+wS9PyOJLLldy59HEsBphCXseIz5n7 +vSaor1hbBL1kLGreB43lOHdSYDK3wwjeXVA1s8ErF/tpDGsoPlu8Wywa4nMVMDvj +rNVbiUBt4rqHVxDGlaY2kWV73IYQOP6uNep0ss+L4SLYnWJhrXTOmvjmRls= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/omeo.alipay.com.key b/cert/tmpCert/omeo.alipay.com.key new file mode 100644 index 0000000..609020c --- /dev/null +++ b/cert/tmpCert/omeo.alipay.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAufZ58W6MPqprpiSTQZG3aT7D7ulzRoqNpaCqiAWd3Uud2HMK +bkKLSwOrWy09z3OwwgmM/lo4c8e8Vnc41s8jGZNE4z5bX+8B/L0dTf4NUEziN2tz +l3U0vMfTj8/r7kTnija92f/LkXcsAE6c5s4kbB/DaUIlRInjDiKfO69kT90vq0Ga +nb1kvDezYcN9LVR5Ph3IT5tPCbGlcuDsLKPeNs9QoZNA7tJ9O8KbcZRh+dQicCxv +2BpVWRUiBkt5/F93x/09VM/ZcRzmdBmIYGhFwNyJQFXECf558Bl1iGbtY0gEiPwx +eHQiLfPAhLq2znwnsZ5DfFsIFl/IXdr8WGdwNwIDAQABAoIBAQCf4Vn8CZhH9Esy +/3UfRYGT2aOoz0sNleesQ5L5+SI9dVqTEm0gWNPbPZ9gd2gR6JxKZt2yfKzWVh4F +lODoRhQeU/BBE4aJ1zo1Kf585HRb2o4PKbGqwNkDiSXKGe/03YbX3LKjL3m8aeIJ +rYzWHttPnotp/rV91LLCn1+Zd/Tdd4wHpVkSZZhLLMHGb0RVhSSvqYopYhAguLXF +YUmtjqfplnS3GCSbgJIstugB8ic2j36hjfUQ2u1EpLlVvcvADwNeUVJphLfk+jy2 +VCu1n1BWv7PU4uKlggrlxFG05l8P52ZqvFQxpQeAkmusD2DxUQbCAc4x4CGlXkmY +vNdusztxAoGBAOm+aOAqJxUtAkYq224iofe96ly0kI7GUx2vw/H8vehPFb07fB5K +DDM2k/UQ3D/CVYcvsgWYjn1gOU1IfytkvHdJkp7v3Cc0PM+pOvzp1cwZsOtat7yX +00gZOiTL9GNG/gFYbisENu8CP/xciMrMBn6tBFWSWSwR3lQPxnDXLDK/AoGBAMur +YzfXq+g6ow0ImFO3gTjlxLTmla/haK/s/WLyI0f9iB+lzbufcJQi0+oHv7rEvy+e +G08Y9Xk1AA98ZjRi7evY0Gpp4Yeagq1npCOCoDSloUVhBwaH7JM/OZre0p191tNl +iXbDb0k8RusBecDvRdcXw1CKOb7zcgQQVTvPebiJAoGBAOTOwGjWuoVPFs/K+hu4 +iSYzYSw4kN1CJHCF8uB5kQjMCbLAfQJFZ+XmAjW9uGwtdn2r4a76pFj0jYMqeVnn +9VkryvwMPkyeJPz+YsDawa9WYsowdnWFhYwpLbKBeAyKnPCCOO2g5YlXgX0us7UY +vS7ZfMmrReEO6L0O6CjjaN+PAoGBALLtC4pYj67CLNJbda8+bGj2+nvOgzxzs4uy +kNynSrWJF1huSjKFnNqXSkK0sgy7ohaMOQOhMq5cEISKTiPBsbFb1aVXBYojBKCg +h4Om02XNCMQxvIFRUlX92najQLaZgexPrJdIlHDrYoY80qDb1ChluPH9rUODDexi +CO81k4K5AoGAZPraLQxZ+2uF3BnUB1Ut4l2mKEE0HEM3S5LjGkpYDs67OLCG0rmH +YoruJf8r7CWCAON8cyQgNFc4c61EUTLZj/UpizEMYAWf7isCodlVC3I2Er5RurNX +zFoq8uCETuMtrCFcLw82YSvPJfBFMnGpFKGv3z+BC0qfnsuba3X36GQ= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/passport.alipay.com.crt b/cert/tmpCert/passport.alipay.com.crt new file mode 100644 index 0000000..6a35c99 --- /dev/null +++ b/cert/tmpCert/passport.alipay.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjnjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2NDIwNVoXDTE1MDgwODA2NDIwNVow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTcGFz +c3BvcnQuYWxpcGF5LmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOBcSVWTkjN9YGuGX3q8TSzCnaoXJm8S +tbdzZs5Vd/5VibD6AOrs3mgFgQJUWh5pqnOYncWek3Y5JvyAJHrpYXRaEElNg0hj +wYKyI9dyl+ZuFfBFfyQOrsgp1H8mnepGOGPVIQKYMzr+b1t/7Pp+JHwohrLeOL5B +DNhKwFPUZZXJrkhf4JxC/AZPaJaDbmmeK3lUbU19i1sPU3KuoXMl37Crr2hKKIkN +RBedaLS/T3ijPMYRYR7oOH7tlw/kJB7PdIc1hf/CdGAPNRxqiYCCHKWia5mIpZvn +2D3Nl85dP48/WlkmexHGq3LBAGUAVrjwJAtFCzDQWFeFR4LlDgsGWdUCAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEAzE1Kn82VZJWcFhyJClAWhRDk6pRcDTx099IRZVMd +eVZKONkmR2s/RcHe/bJaWic7/maz9c9K1Y20/emT1/a1vTsxZA8TN0xr8vwl3D+V +CwH3BPbAcC49YmINm2VqbGBA7z9s4ywZxPdlb5xadWbMUILGA/iYildEDU+Amg8o +yWhIRFC18ywpUJBWQ9XK9vDn+pBmY7agT1OuJB8us9PX97Key3TDpWE9nHGZmV+Q +amgu1cNpY53g2FR0L8UcXtJpb/6/3IEBZ2V4xkrheYe7G74B9gQzep6Qa3yovr7y +/Gf9plLRHn2VDFLcYosggz39A0ChR7mzVZw6VZKBBqTDWA== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/passport.alipay.com.csr b/cert/tmpCert/passport.alipay.com.csr new file mode 100644 index 0000000..93aa1e8 --- /dev/null +++ b/cert/tmpCert/passport.alipay.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTcGFzc3BvcnQuYWxpcGF5LmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOBcSVWTkjN9YGuG +X3q8TSzCnaoXJm8StbdzZs5Vd/5VibD6AOrs3mgFgQJUWh5pqnOYncWek3Y5JvyA +JHrpYXRaEElNg0hjwYKyI9dyl+ZuFfBFfyQOrsgp1H8mnepGOGPVIQKYMzr+b1t/ +7Pp+JHwohrLeOL5BDNhKwFPUZZXJrkhf4JxC/AZPaJaDbmmeK3lUbU19i1sPU3Ku +oXMl37Crr2hKKIkNRBedaLS/T3ijPMYRYR7oOH7tlw/kJB7PdIc1hf/CdGAPNRxq +iYCCHKWia5mIpZvn2D3Nl85dP48/WlkmexHGq3LBAGUAVrjwJAtFCzDQWFeFR4Ll +DgsGWdUCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQBrg90XnpEDOTYRDFlwvHDS +dpvqL8+GswYZGxZZ0pqX5YUQW6cXES9HEWUlc7rIAmReC9btfItEkNC1xw2PaRLk +rPnAbGgg4hEdcZV/MgMPPFaPlo9emwrWnw4uBbEXsmMmJqXkQWN2hrWfo/OJpQq+ +vSzF88SKMxzweFGNlM74hS0c/lD00qB5d2iepmXE5FkDfsNU6ytVcUWYVEFVs2/w +WFbZxJAHMbQNMlHSdRh0HT6IyGKO5nt+pX8UOXW6O7NOPz6ZCCQS/ZXKdmqEIcmv +KiFEF/su66mw8QgtEMjf5Hfaqk7r/n10iNEs42JYTyH2z9IBuxdi4Wq56ueBNetT +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/passport.alipay.com.key b/cert/tmpCert/passport.alipay.com.key new file mode 100644 index 0000000..bb27c1f --- /dev/null +++ b/cert/tmpCert/passport.alipay.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA4FxJVZOSM31ga4ZferxNLMKdqhcmbxK1t3NmzlV3/lWJsPoA +6uzeaAWBAlRaHmmqc5idxZ6Tdjkm/IAkeulhdFoQSU2DSGPBgrIj13KX5m4V8EV/ +JA6uyCnUfyad6kY4Y9UhApgzOv5vW3/s+n4kfCiGst44vkEM2ErAU9RllcmuSF/g +nEL8Bk9oloNuaZ4reVRtTX2LWw9Tcq6hcyXfsKuvaEooiQ1EF51otL9PeKM8xhFh +Hug4fu2XD+QkHs90hzWF/8J0YA81HGqJgIIcpaJrmYilm+fYPc2Xzl0/jz9aWSZ7 +EcarcsEAZQBWuPAkC0ULMNBYV4VHguUOCwZZ1QIDAQABAoIBAQCmDmgQuKqLBY7p +xojAlMIiEOEU1RGTQCvS3c0HhmbLjY/dtwwa1LpAD2LO0JPq0pZf/GM5swa9h8t9 +M3LMrhN9RHOtbXtvhrXg/+xbN+uJl40RSr6xd1SRvbQTcAeNL+/opARMoU25qjvN +Yz+InvhuFKitlqA04HybUahL43ZUh4/5lLMi3piuHcfGFxt/TKSnUcb287Qim1p8 +OiP+/mErkYFskqpxGXRPRprg18u5S4JDbX7YoJ799BpZxPKySJ6LST7g6yTubgRU +Ga9K9lKfRFZ1iitlsPg7P4OqMz1eWh5B/7Jxh6/KK+sHLn8oCnYk7a9MxHF8goew +UcrUGYIBAoGBAPzuBZzOtLUgt/xHLOlbCoiOUpMck1wjb/4JOy3Fpvn9Juyyw5kO +LowuEq6Uw+CcihNGwVUanf3DTuM7eUkEGX2wJHIlfpOlpTRAJgr/r05MTD1MS/WQ +J2Gaca3kV1haaI9+QskzXIk6j1DEiU6lo6vKgCQ1xJyTdFw+/FYo7bxBAoGBAOMV +fFLF1KQ+uATLONRg6yl3wtswowZYW30Emfeiodhm1zQa87Kpjpsn0Fw0uE7shsry +nEw0FmzxHpRX+8of8Hfpd0NyLaNvbG1WbNGnu5C1Jyh0ZO4yYfNpjGk0AviVLksc +702rpysmbk9VrrhTl/i0b6Jz3/LGi+jP2u/8VciVAoGAK9KlwEyEPNnFZv2CB5CR +m6VlIz4RPiaZsd8xlLWpP6kgBGTYxP0TDZCyBfOamKEmvz5EIxWwiBY95dsZIZCH +RiKtveVHMBfELvBqZv90BVHs57X/dzWZzSxwQ9vLUnCfqzUKJ0gx4Uj3KdxTmf/T +AuHcH+n8/dACmjUDjX4b6sECgYAxcRMhfns+y30LZifYbcWlwLKHQL6t+fzpamAP +f7RXRoTijl+y7aHj/DYsbToXzP3IICyRluGvFIyA5esnZe7YXNefsrNnGzJzV9bX +ivqWliqRb04uYn/bHIb6vN1MvEZZClK8CXybM4He+hvRfDnhZ3/K0gnXdQ0vQlo7 +2CfhRQKBgQCVCHNkDIWFt3ar1VxR3KDSTM6VmS6Y++ajJuXY6NpQehNSDbj+3VKZ +wwinw8uSdlcH1Tquu4hRP+w0EAgqaaSnsbfoFzkGo3h6Iy5REVVaYKzJetdqHK/T +nVTAfQUNlR5nq9RydsOzfBIlKXJ0Kb45tW5VyUWmX+mI8FndKlKdTw== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/pixel.quantserve.com.crt b/cert/tmpCert/pixel.quantserve.com.crt new file mode 100644 index 0000000..b730026 --- /dev/null +++ b/cert/tmpCert/pixel.quantserve.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTzCCAjcCCQCX01C4JsnjrDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjU0NVoXDTE1MDgwODA3MjU0NVow +gYcxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEdMBsGA1UEAwwUcGl4 +ZWwucXVhbnRzZXJ2ZS5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp7ElSFA27zcyINC5RIcP3ZUmRwuQ0 +OA9CQWpCcMYLb0UbJ3ggyyr66VcMcwl6rOrHjm8DRcbtNzxAiGoPsFl3pucx7IFg +g8jWvA/4BnIEXR14K/tRKAvaG3KejHEeQDHDp99wEhCLzyr7DV308TaPxEL/lfUI +q08UxjShJmOeol9BS1xYg4f4rWkCk8mV0R2zXtjE1A0lZ/9JMHzIsVDVaWk4fmzq +JfqLbRSYVs2zJbphU1Ll2bdRBbh6INRULqc+epVScXn0hl31M33VIaG8A8+eTePW +wJDUJ6eI1PKI96epxfVt5oB9jOW+PmXh97NEsYDacG55VjceDab+rA8XAgMBAAEw +DQYJKoZIhvcNAQEFBQADggEBAC5IGy+7x6/52y86aou9EonvPEp2IrGL2KL1fW83 +t+d/DhoENpu7/lAYLWyotvVHNzvq6knVK5L+OTTtc/tsb6Pk/AdEokBjomx9NUQP +IM2ckhYdVsq2ssN+VUNIZ2IC9Uhr4tUNnXQ+7leMPzG79e83B37vJJjIiznUMinX +CVV7yc1ZOfO1gCF4p/2cvj8ovef1F0t45f3k7PUixmkHR97rkArkxyN5Znm09d7b +3Lm/6eIFjSjFGTSNBaXKvDNY7W/lQ8OgucAJDmjxC/m0e+/ObO+YNmGJ+18Nu0F0 +TQCMGgPN5GyDs7FSEKue0WTXpDAcGQF52NnVXmgBIC9a4Wg= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/pixel.quantserve.com.csr b/cert/tmpCert/pixel.quantserve.com.csr new file mode 100644 index 0000000..efddaf8 --- /dev/null +++ b/cert/tmpCert/pixel.quantserve.com.csr @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzTCCAbUCAQAwgYcxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEd +MBsGA1UEAwwUcGl4ZWwucXVhbnRzZXJ2ZS5jb20xFjAUBgkqhkiG9w0BCQEWB2FA +Yi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp7ElSFA27zcyI +NC5RIcP3ZUmRwuQ0OA9CQWpCcMYLb0UbJ3ggyyr66VcMcwl6rOrHjm8DRcbtNzxA +iGoPsFl3pucx7IFgg8jWvA/4BnIEXR14K/tRKAvaG3KejHEeQDHDp99wEhCLzyr7 +DV308TaPxEL/lfUIq08UxjShJmOeol9BS1xYg4f4rWkCk8mV0R2zXtjE1A0lZ/9J +MHzIsVDVaWk4fmzqJfqLbRSYVs2zJbphU1Ll2bdRBbh6INRULqc+epVScXn0hl31 +M33VIaG8A8+eTePWwJDUJ6eI1PKI96epxfVt5oB9jOW+PmXh97NEsYDacG55Vjce +Dab+rA8XAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEASSN3QPvFoT/MpunnnZBA +/4tnvMRMOYNQ9nP7aBtiJtl6orczZhNAn5DFqsz8d5wYFBkWIbjQpA/JZSa852Ym +974m+H/P8Ae3gbhhmjX2JF0CdVpnqp72RJnt9lwRjKezZL6hpN6lEvi89Vsyjoge +O9RMV3Udtw62pGN0z32E3GdnOSI17lb1QQfn52Lnzqmuwjt3NjlmNOuFgdhep+Vp +BvSygiyZCCgkCx8MdqyZ70dPPWhOVXQWeumjyvx3Hj7PtYsqHcflvCQ9++v5k4Qa +9BZk+9EyywREpdvYdsadajPGYSxR08nd6Luf+xWjtGOUz0m0qZ1x3qd7r7leIJZ1 +sw== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/pixel.quantserve.com.key b/cert/tmpCert/pixel.quantserve.com.key new file mode 100644 index 0000000..b5b204c --- /dev/null +++ b/cert/tmpCert/pixel.quantserve.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAqexJUhQNu83MiDQuUSHD92VJkcLkNDgPQkFqQnDGC29FGyd4 +IMsq+ulXDHMJeqzqx45vA0XG7Tc8QIhqD7BZd6bnMeyBYIPI1rwP+AZyBF0deCv7 +USgL2htynoxxHkAxw6ffcBIQi88q+w1d9PE2j8RC/5X1CKtPFMY0oSZjnqJfQUtc +WIOH+K1pApPJldEds17YxNQNJWf/STB8yLFQ1WlpOH5s6iX6i20UmFbNsyW6YVNS +5dm3UQW4eiDUVC6nPnqVUnF59IZd9TN91SGhvAPPnk3j1sCQ1CeniNTyiPenqcX1 +beaAfYzlvj5l4fezRLGA2nBueVY3Hg2m/qwPFwIDAQABAoIBAQCcoJGBF70FBJDo +Z3jeDgqtqu5ibkudmqLuBpAkyAC1H46KlhoT2FI40AcOEaeGLYeIBFFtqc7Qb56Z +OWTSK1J8iRsImKE0zqS80sLBc2d7gD0evSO9zfUGyVAgtwG5yaBVYhMCIZSg2oga +u1qE4ibR5C2Bm78ui4Gse3qdpF4lJLO5u7YFmyfCVFt9b+PAuW409eWmt4Bmr9cu ++LkFjgPCFyT1UYlqMyV7nLM47VruLSTQSxpQl7vcahY14WY4Og5R3trFPW7uqOCk +y1DYroUU+7Y6ivZV2I45tEacFa58GfhQq6N8TgsfjCWCkwrwFbm4K2hHT8YSIX/a +vuBRhz0BAoGBANFs8+K6Zn5CdanUltliK6qhtA3bMR/ZIdF3wAbfJOV2sPRoebC5 +1jaTOOKcQvFtChD9J3urjHCFi+z4WxrKxWmL3pa82CyCucNIKrorhpePxksMyYC/ +Cwzq6GfH3KXJrg4rq0Q1OmCJQUijAZ1319KUqWp8BHi0nDP7i85KFgeBAoGBAM+2 +XbSk8aiSRKfk16Uge3Y8ug8Kcuu/AboHs0Gp3gQ7AUPvsZy5bUHvL2PrhbnW82cf +j9zJ+8pk6crlliAm5O9q8YtGJNOQy49358ZT/hG0mJDNQ8hcAWwNI5EIadTrso8j +EYilFub++13rBZm/Ya/ebR9jVUTzp0KYMQTh7qKXAoGBAKsWu1equDjFyqJnzqTh +EpNfb10yiLtgA8TAc9wpSFc90+qXv3KlH1+OfpaC2h2p2uNuLWdXCnCSaXG6o5ML +vKMxZTL4LBKQ6Xmj52QYUuhWyMRfOe84I6r17c9688NtNAjXnB8o7PwYpYDVymf+ +lA6w7IbVskF6K3I8OkbZN44BAoGAP8PVWnp0cXKNvxkCln+1RyP3Xlyv0O1vQ0PP +5O2X6aaPieKQnPNTtjUOUFdiUx3I1TScPoSHVqfKGe6HOtGV4GXtRvs+nPBLfXyq +23i3e4n8eB97moucKCaUb5asnp/IziZO4KsFr95BHqDitENLYukeiM8+ww8lns0H +517QmnsCgYAxnkAcGOlu/w9DeWZywgY6m03cr1G3ZfP6fiNNAh1jQZR4vXdUQU4g +jO6oDV8rTiuLCS8yMXtOITmkICuuK+NiLpLmZJhRdb7eHPxkcbPN5v5hZJ7M48LX +WyK3v1Xh1R8uNXmCMN0XitH1ZYanGe/K3EJGalcHGyiIqnq0Gs8Bbw== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/plus.google.com.crt b/cert/tmpCert/plus.google.com.crt new file mode 100644 index 0000000..288ea43 --- /dev/null +++ b/cert/tmpCert/plus.google.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSjCCAjICCQCX01C4JsnjoTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MTcyNFoXDTE1MDgwODA3MTcyNFow +gYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPcGx1 +cy5nb29nbGUuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1g0bTO7G/7EyGPdn2S4Xo8rgD44gm3I+C8ww +AbJLyT/UgFlQBgxSg/WHzKrJD6Q+ofWHuXi7PMnpUta96Rm5TQtWxIHJbOppuR7U +88YSa4Vf+PE2dY0lbBmymjUADo9EIA7Ey4D0vK99g/IhQ0GDMrhsR7zXfrdTM+/1 +paDpj8Zbgz31Ey6t16L5OzqM+NMj/cAzOG9lV2gmnOVUJqodaMWQmI1lZ/ypd5uj +dlPfBVNSOzb/Ab9r2ECBHRNHOtKq7E0AlX4Z/m6q88I9/DME1qan+u8qElAt45cn +7RPd0IqG+HFjOuzk98e6FF4dctMk+Fchbhz8Tc9EghIOqh6ZwQIDAQABMA0GCSqG +SIb3DQEBBQUAA4IBAQB+RTEKjxv1mX34nlk2NCKnBqKZ2yrgN4qb58oC1we/uleK +vfRocRkI5/JkQPQTqjeDJJIEohzTIHvqQrjyRePKaO5jW7zV4g3yzahp+WKkitKZ +lmU/oybJWEtMB3b51NvaXaYim/54wWj7Hy/+YjXUkJhODR034pxRlO0mdvaxhrMu +UxQTh3eclKPXjhWl3vqdjeCxrGo/zN3CN6iyBzq/0e70k0LEGeJEKbKKHEd77PMa +cwvao+t+Y9EAEbYw1EbawyiNFW3BVV20H14dGC/4FEhgTSgcDoaM2btuBqcz3jrn +ShxNqJHF2ztbVC/eUK0f80qS74UjrOBNtKlSywOe +-----END CERTIFICATE----- diff --git a/cert/tmpCert/plus.google.com.csr b/cert/tmpCert/plus.google.com.csr new file mode 100644 index 0000000..e6758ff --- /dev/null +++ b/cert/tmpCert/plus.google.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEY +MBYGA1UEAwwPcGx1cy5nb29nbGUuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1g0bTO7G/7EyGPdn2S4X +o8rgD44gm3I+C8wwAbJLyT/UgFlQBgxSg/WHzKrJD6Q+ofWHuXi7PMnpUta96Rm5 +TQtWxIHJbOppuR7U88YSa4Vf+PE2dY0lbBmymjUADo9EIA7Ey4D0vK99g/IhQ0GD +MrhsR7zXfrdTM+/1paDpj8Zbgz31Ey6t16L5OzqM+NMj/cAzOG9lV2gmnOVUJqod +aMWQmI1lZ/ypd5ujdlPfBVNSOzb/Ab9r2ECBHRNHOtKq7E0AlX4Z/m6q88I9/DME +1qan+u8qElAt45cn7RPd0IqG+HFjOuzk98e6FF4dctMk+Fchbhz8Tc9EghIOqh6Z +wQIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAJkxc7jWe3cvdFlYwq+hxanAt1wS +I08zbijde9/u36nOb0l08Aaag8MOTNz/RTnjxA6y+kojCD4HQyA8ja4BVf9bokfG +zhTQCF8rU622AGdSX8yompLleJmRnGabiFdrPbylEpZ6hdgbmpb1o52q2xqY3yQn +vZDhkp315muVsJhWJ8IOUSkA6YM8kW0hxvqRQA7NESw/jSX+s845ja6ZpHYRBmmh +kJJLjCvSxB/kZqpX5HrwG4EaDbGa/lqPUhVOoGxgL8QzIDFTNxy44DmjAz2rpyTI +E8NdpTwq4ituw/e+Qb0/916TMw2fAEdTjHb15bes+1Srw1Tji/GQ3JRfsZs= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/plus.google.com.key b/cert/tmpCert/plus.google.com.key new file mode 100644 index 0000000..994baf0 --- /dev/null +++ b/cert/tmpCert/plus.google.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA1g0bTO7G/7EyGPdn2S4Xo8rgD44gm3I+C8wwAbJLyT/UgFlQ +BgxSg/WHzKrJD6Q+ofWHuXi7PMnpUta96Rm5TQtWxIHJbOppuR7U88YSa4Vf+PE2 +dY0lbBmymjUADo9EIA7Ey4D0vK99g/IhQ0GDMrhsR7zXfrdTM+/1paDpj8Zbgz31 +Ey6t16L5OzqM+NMj/cAzOG9lV2gmnOVUJqodaMWQmI1lZ/ypd5ujdlPfBVNSOzb/ +Ab9r2ECBHRNHOtKq7E0AlX4Z/m6q88I9/DME1qan+u8qElAt45cn7RPd0IqG+HFj +Ouzk98e6FF4dctMk+Fchbhz8Tc9EghIOqh6ZwQIDAQABAoIBADejYoRF0K4n1fjN +Xk4CgByQIFuKuwkM0fnpElVujep6z/aowHdB/rTUPn9BqU+Khsk8dBIOwsSTSzXA +Ic8UY6kWGHCtt7i62c5HqFzREHqoSYEA2gIGNUL7DwSsYB5ouPGIRTkMhRECoKKK +boD3521oqKSg/naumk72wahSwkMfd1smBFLvP0ryFR1rfSNxkThi4UA7Vi6oZaFw +LT4HKCSKWmGx7RZ0Yl5ZgpeF/IcC71mVLBEm2M45QLBWr8glhpKYXZPTlxUTNag0 +OgtO6KKxBMG7QsvwlH0m5PGzkXYXotCmHni3dIORkBeS9b5yMNGDLDxzpWPgETCs +CUeV/R0CgYEA9Mk6/cc2DWsGZLUqzhbaVyRUdb5rwxd1e3YrT/VxqAIT68YgESU0 +Si6DTXBDWhqDDvR29VcJcVCuEJCDl93QPm/jpzVo6cai0UO+/36gAdMWQzBxRhl8 +sRbwwGG5/jso/JI4nSfMbNDr6LTyJT8gwmxEngWPUmoMUTn1GK8c0SMCgYEA39tt +kRPsc14mMIkePTkffK0d/cd9N9o7AipKh4C6IbNMcn4tFpSpnN+w+aG6zKU2Ywmb +3vPl34X+RBpMcs2vFVZkU8Rcfz1WUkAC+EmIjZ9CE6EPQyfT4wXqX8fvkE0vg6Hp +3EnUVamVxyqwKUq8TKQWRikP9S/EBC1My5uH4csCgYEA3P1m0oGsnMSIixa7xD8B +czaLQZld9E0TdRij1ZYCu+jUT0EY5iGuaWJAjALT616P/0pYsvmWvsRVwQKWqt5I +CHY/Ek+3nYYEq+P7ZPHORpdpO9NaEC0mU0Igq64OmiSSxiLEFa0+cubSc84X5eRu +ENhpwjfGwmKXKCWozlYZL/0CgYBlYQqN2WgMF2dUM8TuFSCdZglfFSkwUjTHFkAK +fdHN0VWdxGbHAyyNTwDnDMd8RpYK5B8jKXHBeP1d+ksE8wGHuEhXZ2Y8eZrORQ8T +QroE6UsTeK1gzHi5J8Ss++8SeuI5yuoOSaFP6i1atYpyKNZ+HxG3VIFVmPw8qAdP +bnBrYQKBgQDPpjXbEmzD1JGVB27y6/M0N/ewmxJCsq336gnyzdQ/x0XGsAnJY8EY +RQwrvo3AYN66+PhXtdiZpSSVQI7xR2nd2CU4mwzsET+whonEYCLFynCGJ2zUCZqc +hdoFg10KRMBbqEooSeeEKUDpPlxqnu9o4wxJ+j6JwEOWcLthi/ULHw== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/rds.alipay.com.crt b/cert/tmpCert/rds.alipay.com.crt new file mode 100644 index 0000000..fde8630 --- /dev/null +++ b/cert/tmpCert/rds.alipay.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSTCCAjECCQCX01C4JsnjnDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2NDIwNFoXDTE1MDgwODA2NDIwNFow +gYExCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEXMBUGA1UEAwwOcmRz +LmFsaXBheS5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDSV0T3HKTAbB5mFMnNh2UhvvkzI4OKRVo4YQKz +crT2JD6LGi2m53QtkBHrKzJt7/Aohh3I4i+OS6xJFssl4od24uFSC6HT+FnvfpM+ +zM3iEnYuPbMQZefePbWT9Yb6iX538/V+17qc/liDx/V2Zxyl0LF6i2AeJ3JR9LIa +KmDhD0BCB1ja6ebR8lgzKkGHcSsD4w2ZwnKHGbBBLqBrSCiX+fmfaWIVWmF/NrxQ +wfpKW40szh6k6Ud1wbwhg/NmHUsd9NYcYbJ0EiLscrIAqD1nbhfpxkgh0R7wxQqZ +8+Zf8r7/G0SzQ8Cz4J57d91z0YE+01IdhqrojidXbF017ahBAgMBAAEwDQYJKoZI +hvcNAQEFBQADggEBAJJIY3axwF5d9AGqXUU0LaVYV7D4AD6ECEnsYg6rhIrvFsD9 +Z66YWlKICed1XPV1K3b7e0hs6tNsRqlq2lP6b3xEj+on3Zo4lDXjilOnnznoDGVF +knX+Nsa/Gp1Syh2i0shSV/8UuQFO3/g9s5j/v75pMzQQol6wlZHW/pF+Mfv0DsRb +ikeRsqrvsR1q8sQgKpOvbNDwz48BrqpRJ+BFZcjNL1mr/KtVutBU7W3nvvWZZtKs +vuOolteKP7ZxgZ0fZvrALUPYpys1dPRJITbvgu14cIXh72g8nCzV3vjuyRJrQrq+ +S5hV+rsHK/hXJKxEkz5afzjkMp2MdVnOfBZdeEc= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/rds.alipay.com.csr b/cert/tmpCert/rds.alipay.com.csr new file mode 100644 index 0000000..b469109 --- /dev/null +++ b/cert/tmpCert/rds.alipay.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICxzCCAa8CAQAwgYExCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEX +MBUGA1UEAwwOcmRzLmFsaXBheS5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20w +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSV0T3HKTAbB5mFMnNh2Uh +vvkzI4OKRVo4YQKzcrT2JD6LGi2m53QtkBHrKzJt7/Aohh3I4i+OS6xJFssl4od2 +4uFSC6HT+FnvfpM+zM3iEnYuPbMQZefePbWT9Yb6iX538/V+17qc/liDx/V2Zxyl +0LF6i2AeJ3JR9LIaKmDhD0BCB1ja6ebR8lgzKkGHcSsD4w2ZwnKHGbBBLqBrSCiX ++fmfaWIVWmF/NrxQwfpKW40szh6k6Ud1wbwhg/NmHUsd9NYcYbJ0EiLscrIAqD1n +bhfpxkgh0R7wxQqZ8+Zf8r7/G0SzQ8Cz4J57d91z0YE+01IdhqrojidXbF017ahB +AgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAKvbp3xnfeRNy9RbQkNjoHRNHLj++ +lxYtl3yQ9UofCeduEnxg38NrRDVn8SfUXvWCjXO8GlnfMMBKAyUIVB0x44nGqfEJ +oQJl0Vme6loqBO8o/jT1BEb0sqCAezzfsjFMAF8ONS0N+aN5X3DrtIDv0am6e8ik +izTeGwSpjwHg3vKQG7gmxbdYZ1YktGUORDCPHd+SBiW5nWAvq2ret2iFmKKzjQzF +M5CJjBvEGld8YwpDZU71rfGIKdGnBjN5W9orEEGKKbBhXme9dXs4xoR5+RaLn8il +DPYioaO2/GP/JROhixpWG7VOHXl068teZ+x87g27/giOk3yhk/gv+wuirQ== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/rds.alipay.com.key b/cert/tmpCert/rds.alipay.com.key new file mode 100644 index 0000000..eda1c8e --- /dev/null +++ b/cert/tmpCert/rds.alipay.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpgIBAAKCAQEA0ldE9xykwGweZhTJzYdlIb75MyODikVaOGECs3K09iQ+ixot +pud0LZAR6ysybe/wKIYdyOIvjkusSRbLJeKHduLhUguh0/hZ736TPszN4hJ2Lj2z +EGXn3j21k/WG+ol+d/P1fte6nP5Yg8f1dmccpdCxeotgHidyUfSyGipg4Q9AQgdY +2unm0fJYMypBh3ErA+MNmcJyhxmwQS6ga0gol/n5n2liFVphfza8UMH6SluNLM4e +pOlHdcG8IYPzZh1LHfTWHGGydBIi7HKyAKg9Z24X6cZIIdEe8MUKmfPmX/K+/xtE +s0PAs+Cee3fdc9GBPtNSHYaq6I4nV2xdNe2oQQIDAQABAoIBAQC6weuk8RTDGPxg +rMKFL1s2/EZtBnJLucoiVtg8FnPgPEwf2+1+zPDVZ57RTDhpbmmwwWv+qf2JfV0K +RCe5iom2oDlpTJSyDUdlIuCAGP4QZU3zPqsXuzOFmwr2xUDEgIH+5Wgq6EZ0EEzt +LQSfzWudOk/qu4drHqEdbYMZQllkWTZ+1U0ybokuj35ezUvy0E0GIqSRrEGbeaTL +mlye6HLM3Q/KaGvvOtVToMIzfIcSlg9R2WnCF2da8RwnKERR3a3CILTExiUnKP3x +RJKm1vTM0EEbnbzt6yXHVCnX6gmp9MkHxKbamyX2syKz3rRI6y8dDCuY99WHWfXE +Dd1PM4ZxAoGBAPV1Pv1eU7yVyQjSxQiLWO+5geHsXEVx9bh73dfoQ0AGD+Xm/+nL +JS6bwjtI21gr088UlX5Ob7GiakLYuYt89BS9tFqQo72FZFIfUktNCcRQBT2MEcu8 +92h1jYDQi/BgDLIeChThYWODaP3ubalwt2O6gWO4my5ZBBGgxuJyKF8NAoGBANtf +60IUutKtNPOKfamlQvAWtZxWVasJKyEE3FHhForz2w3tuULmTBLRnovF9ElnWXcP +tr0NAxjcor1AGHD9nTOLKGIBQZxf0/VeUK+BpbdSoWQIzzOP/J1zYbuP1df4DEt7 +IzRIv647feznSv0oLbb5KxpqIZ6keWkNZGIyp8EFAoGBAJ6fVkWGX7bPVUtOaeZL +pv3EdBr8E+UM8C54XbTZdBw7zqpTza3Yif7EyZBmVNl1+TspojItniC9RM5OIBn0 +dgexUIv2TNp9CYfIlfXzowwqajiL/DQdugTXcsp7+vMsHwg8QWec/sLAeWkgW93T +6a+ZJ2S6OA6LmAWMUPqlq1FBAoGBALaOqe6B5b6wmSIam9xzRLMbkuKZDg2ZQaTm +sJoK4IGd0StUKxm7II+AlZnnkBUNxmvITeAhVfR4l406K5zL0Og149M7DGifbnoA +lNCY6VkXkGr40cUtC6HThP9bATAKoeCmhnNaHvlVVMOy7rqhlvlvfSksLPIiGU8M +7/6v/N4pAoGBAOqkceRMZewocrEYLLfjUBwvH/NLYAsr8WSgx1b1fCagZPNieDl5 +6X1OpByw4BLJXY8+OsLDQJI7Y6C+JHJM8CeDniGjwt0GewIigl4lgyVxk8TgAX7v +CuGmWU1KkBprBOmjNAm77ijv7TlxmQMD94XNXnPVnrELjD70oS37AUT3 +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/s.tbcdn.cn.crt b/cert/tmpCert/s.tbcdn.cn.crt new file mode 100644 index 0000000..f4d12e3 --- /dev/null +++ b/cert/tmpCert/s.tbcdn.cn.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDRDCCAiwCCQCX01C4JsnjjzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA1NTgyMloXDTE1MDgwODA1NTgyMlow +fTELMAkGA1UEBhMCWkgxETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQHDAhTaGFu +Z2hhaTEOMAwGA1UECgwFYS5jb20xCzAJBgNVBAsMAklUMRMwEQYDVQQDDApzLnRi +Y2RuLmNuMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAocw/osWUi4VYz+r04GgSl1bcmgzlp0oioMpZLbcBo4JX +51VV4PgGgIZP0JYulA5aGN+YhrRp6z2VNsuADji/dFu2ekd5HFOJRrwRz75FKl3b +s2LSjh6Ckrv12G1G87vdoAGW2+qFfgs3R/tmGwPa5v9AqObruvP5tPBaKKg0GOgf +wL6E57k6AREuPGw3RvwVmr71gY0R8TSr0NdSGeBAQ44+XXhfj58j+QAByNVI+PXd +Gl23+HGWWDu1RY/UC6wqWRXG6viFhdRh1ElSOws4Owl5sOyi5IQYPbWuO3cbWkWR +Hlr9oG6ApOEsiQwrDub8BRPQ8wBHKj8dnczx1GgYrQIDAQABMA0GCSqGSIb3DQEB +BQUAA4IBAQBlbNu1Vrmcy75aw1K796cYFrAMpBo3rkCUyqtBXFRgGk4jM9H6Due9 +b9F1SaU15ZxtzPlbbE90c4Lb74PncG96110qF8efdwVYuA5yHBP5pxi4DBGH2pMc +Ulm2TRjlQRNZ6H7HVnLvmReql6EXlixJkt38fbMHXRnZ5RpyOd0FGMyvQaNyDv7u +qhqej/j+k4Ps8N28YKOPk/qePhcvP/9hnKldVx2hLMr3U41NKf9IZ6vZP7rr8zKv +l8m1yfs1BvEA62dBb/BhLshdWtJ2e6u2Jxszz1IzXcLhmGAT/KBVWlD/mXXFQyS2 +CjtdB78MAGVNyxwpokT4X3fkar7Sm6s2 +-----END CERTIFICATE----- diff --git a/cert/tmpCert/s.tbcdn.cn.csr b/cert/tmpCert/s.tbcdn.cn.csr new file mode 100644 index 0000000..ba3e303 --- /dev/null +++ b/cert/tmpCert/s.tbcdn.cn.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICwjCCAaoCAQAwfTELMAkGA1UEBhMCWkgxETAPBgNVBAgMCFNoYW5naGFpMREw +DwYDVQQHDAhTaGFuZ2hhaTEOMAwGA1UECgwFYS5jb20xCzAJBgNVBAsMAklUMRMw +EQYDVQQDDApzLnRiY2RuLmNuMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAocw/osWUi4VYz+r04GgSl1bcmgzl +p0oioMpZLbcBo4JX51VV4PgGgIZP0JYulA5aGN+YhrRp6z2VNsuADji/dFu2ekd5 +HFOJRrwRz75FKl3bs2LSjh6Ckrv12G1G87vdoAGW2+qFfgs3R/tmGwPa5v9AqObr +uvP5tPBaKKg0GOgfwL6E57k6AREuPGw3RvwVmr71gY0R8TSr0NdSGeBAQ44+XXhf +j58j+QAByNVI+PXdGl23+HGWWDu1RY/UC6wqWRXG6viFhdRh1ElSOws4Owl5sOyi +5IQYPbWuO3cbWkWRHlr9oG6ApOEsiQwrDub8BRPQ8wBHKj8dnczx1GgYrQIDAQAB +oAAwDQYJKoZIhvcNAQEFBQADggEBAHRP8xpjBBvGNgFW32NFBY85jdhPH1Nyv78I +D6d/XNbZUIuziL0NHX2Z9jiIqXd91WL7cv11J+9saTyAV7hrC3pKUZkYt26CpDv6 +6FLKQ+ADUQ1HxJ+hS4krvk4YB8ZtqYm3jBoS/1xPPKWe8yGbqArbCWR50kR4tevY +1QJeSfq1XF1g8rafrCNFUXXmosngW/GAVLzgWTYsm7b9wW4Vzx3554rFCkICeZTt +B2Cb5bjcZU3TmYxCSflMYr0NCpkNRWEf45gmBqoEWwl33SWTcJRSm8nt0N3PwB0A +Iy79F54fGut7kLUjuvo/sHY3NmZJucT2WdDacvFP6SB9lvCDdxc= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/s.tbcdn.cn.key b/cert/tmpCert/s.tbcdn.cn.key new file mode 100644 index 0000000..83c2b50 --- /dev/null +++ b/cert/tmpCert/s.tbcdn.cn.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEAocw/osWUi4VYz+r04GgSl1bcmgzlp0oioMpZLbcBo4JX51VV +4PgGgIZP0JYulA5aGN+YhrRp6z2VNsuADji/dFu2ekd5HFOJRrwRz75FKl3bs2LS +jh6Ckrv12G1G87vdoAGW2+qFfgs3R/tmGwPa5v9AqObruvP5tPBaKKg0GOgfwL6E +57k6AREuPGw3RvwVmr71gY0R8TSr0NdSGeBAQ44+XXhfj58j+QAByNVI+PXdGl23 ++HGWWDu1RY/UC6wqWRXG6viFhdRh1ElSOws4Owl5sOyi5IQYPbWuO3cbWkWRHlr9 +oG6ApOEsiQwrDub8BRPQ8wBHKj8dnczx1GgYrQIDAQABAoIBAHINvtYJHXt0lnSK +lfASrPhN3NgjO0g/9EUQHukg1mDiowCJoS4i6MJ065KIK3Fm5JAgHi7mwrt2/9ZO +gYiE7EEj3XA5LeCP6ncYYB3nbG4/F35OrUpNq5GwOc9EyP1LcyE1vZhsq4l8co2l +ZAarIwYu7O+jSIzTKzUnMQbz+zWKXM6nKdkSQ0dK6vR/4kGVIrLp6uvQRLBxfByd +hxAvH1PBws5ldzThykGghxp/x8wDMaviSiJqT45X/379eXAw1MzGkBZ26/406PuY +p1OJCIxBtqmzEaWQo3pcoOzm89F/4X2QwyMJSQZUEdfDQgdHRqRM0LB+VFGwt1vB +U1GnvMECgYEAzvtMQ31kIzhFf+/wtqHcquE3yqUUJbLM2YQ/W6RVcoQip9pL6dhk +oAjMRQq7ruVN+/v0H8E88Ybk+FgN5JNWF2pWQIlfphGZnW93rhbkKAYIYxCC5Hic +MNBOSwM1HtyXjTsiSNSRBcqYqaOYGTIPnEdby8jn5pxBY1M4JSL6lckCgYEAyB2W +YeibwCRcLRajS+IR7Xp/QVl9c+/RIzmIhrmC9bfgwzVLN3N2lqvclCE4E+Y44GGh +JCGXg1VK0y//oiXQDluNBCGcZ913Vro2nzVXBJAi116goQ9RtH8lj2MVBQiA8oNP +ZlfCl8UIFiGdjbhk4PT9zXpAP5KEqkvc8TSKrcUCgYADjmHDDxZ3XHIlPpQeLy3B +adkxjCCKfUXzvsfv5STqsMZ/p8qCHAuujDgmP4b1/E6Ys72ABivr4mtwsOKcOMPT +5ynQNgwEqGzBPbcKsK3+2guu2AvHrSLR2+Jce5OgEh4weQGfyrcrKE3zLDJizG9k +Of2jxLHnTmv5LubaDH3NsQKBgECQ00lpvH7k/FyL1koQecpOYKqcDg8PDEI6OOOH +DUrsdfdlxYvxlAyPDM86XJaHDEjRFyXKNNFp/odfEDKn0pYfUcNIeOdGHE/+Kst5 +cUcGnkcwv9DXWXxMHblCtbB3Cuu0FDUoEZ/YMYC6fdQQ73NpeE4IqJwaUPWFHpcw +ZaIlAoGAKqvaSP6cW4lfqleY/9xXRvjuXy35rDN+TTyhTpIF35Mjwup5Bz7N5mhT +1p8mZmFgD0Zev7GR0rF2JZk4d4X21MD087NQiHBxcuQ+1/J8kadGX7YlGKU6iQNB +nfvNGvqbgdzFK4QGpB6h8zkHyb0OjBjSovf6/fsWWt8xIxyfb1o= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/sb.scorecardresearch.com.crt b/cert/tmpCert/sb.scorecardresearch.com.crt new file mode 100644 index 0000000..ba470fc --- /dev/null +++ b/cert/tmpCert/sb.scorecardresearch.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUzCCAjsCCQCX01C4JsnjqDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjUwOVoXDTE1MDgwODA3MjUwOVow +gYsxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEhMB8GA1UEAwwYc2Iu +c2NvcmVjYXJkcmVzZWFyY2guY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOsF0/F8n4/G8Ys2+3WMMhZ3 +Layz7kQf1rnqERz/k9R0MGungOhnfa8m0IvIwsDs/hJukeMZET1PleElxN+5LHk2 +4L4jeu3zNugbu0eOVN0KE+62soOfjtSACTGLcbRzmhOTO8oxlBSolfQ3PHiWpbPO +GaDbPPsfvjinxroRaORDzvlVjqZzBMpq7C2OcmscyPf8VTZfit76VVkUrbtRvBn3 +sGvAPRQSH0w8Tl6Z0gsxlXZWbMqgZK6FshKigbLGW14fYT4uuLMr3hGW6u8RQabZ +pVWvwDjl+n2zYitYR+SUNIIPigNpFqFC1UIcVQ5dlKEWndO1GMMRDorR4CJ7KQID +AQABMA0GCSqGSIb3DQEBBQUAA4IBAQCmEWr+pdjODVv7zu6k2BA7D1AP5CgnnpGt +q1Fru3Qei8MHtz1LdTMYi0BfodN8htV13Gb6+rinYhwwnb9AWi34+VwqTcsnJmBi +cRMH+tfRbQMl8LAAEd9Jf3ffYDzGqpd01BKYRXDWAbpqqDV08u6UcPnOqIDGKsVs +t0p5Vl9Z2VxG5k70fzPV01Hm+1O/0oVj8bdorV6OfA2aU2kxgPDlDogcXPr+nmWD +76gfN6gd4DV6LKKBKjOJw3HEJX34ljdcLRMvs9xlHRZWBhmgMIN9fV/C5/KCUekS +88XKj1poCxVBUBfz+0UsmhErXUwTRTk5ZqVUb8Y8hxnsW8i5qn1Z +-----END CERTIFICATE----- diff --git a/cert/tmpCert/sb.scorecardresearch.com.csr b/cert/tmpCert/sb.scorecardresearch.com.csr new file mode 100644 index 0000000..015906d --- /dev/null +++ b/cert/tmpCert/sb.scorecardresearch.com.csr @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIC0TCCAbkCAQAwgYsxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEh +MB8GA1UEAwwYc2Iuc2NvcmVjYXJkcmVzZWFyY2guY29tMRYwFAYJKoZIhvcNAQkB +FgdhQGIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOsF0/F8 +n4/G8Ys2+3WMMhZ3Layz7kQf1rnqERz/k9R0MGungOhnfa8m0IvIwsDs/hJukeMZ +ET1PleElxN+5LHk24L4jeu3zNugbu0eOVN0KE+62soOfjtSACTGLcbRzmhOTO8ox +lBSolfQ3PHiWpbPOGaDbPPsfvjinxroRaORDzvlVjqZzBMpq7C2OcmscyPf8VTZf +it76VVkUrbtRvBn3sGvAPRQSH0w8Tl6Z0gsxlXZWbMqgZK6FshKigbLGW14fYT4u +uLMr3hGW6u8RQabZpVWvwDjl+n2zYitYR+SUNIIPigNpFqFC1UIcVQ5dlKEWndO1 +GMMRDorR4CJ7KQIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBADJlIH2CCjxCzZ4e +AnZ6YriaTyAhEt+45/j9qWR2GDVDk+NJguvsNk0ZD+dyTl4cUfYAMwWUEPt/B5ak +gKjPfOJ/AeeCiLO3+PUEG3lNyuMS2UwbeCvr6e2Akd9YZRLbWrs/WsRYkQYgHMyW +wKYdopZZwMKXappUI5l4IGnv8lo+EAjlEeMUWgAZx2UDI7xW8/bleA35lFmOZn/1 +q1kn5+u361CVjfgmXvpGSCplY7982PC0qgN4yUMnrMiqJtcdL0fTlIjAeYbwaBKy +o45UTOU4px6PETqMXUF8xeCOvIPVhgQdbfL0gjrhEVogcuAuAfDOxBqo20tBOjtI +ZY9K3VI= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/sb.scorecardresearch.com.key b/cert/tmpCert/sb.scorecardresearch.com.key new file mode 100644 index 0000000..610811c --- /dev/null +++ b/cert/tmpCert/sb.scorecardresearch.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAvOsF0/F8n4/G8Ys2+3WMMhZ3Layz7kQf1rnqERz/k9R0MGun +gOhnfa8m0IvIwsDs/hJukeMZET1PleElxN+5LHk24L4jeu3zNugbu0eOVN0KE+62 +soOfjtSACTGLcbRzmhOTO8oxlBSolfQ3PHiWpbPOGaDbPPsfvjinxroRaORDzvlV +jqZzBMpq7C2OcmscyPf8VTZfit76VVkUrbtRvBn3sGvAPRQSH0w8Tl6Z0gsxlXZW +bMqgZK6FshKigbLGW14fYT4uuLMr3hGW6u8RQabZpVWvwDjl+n2zYitYR+SUNIIP +igNpFqFC1UIcVQ5dlKEWndO1GMMRDorR4CJ7KQIDAQABAoIBAAeVi9NZY35oYD08 +MIXhzzIHkttDjqmnFHwjVJFBT8VYhx2WhM/5BIaYLH+8zN98rUb56HR04IG/q11B +/6kqrh1p9FkLaRM7UENJCCv5kG45vXjVYYJDJHmwcD9uPMHg069Az+1bjaf7OFVk +y37i/HFEiaafvY1yK3EQhzPELoS+a4hBbghxTKqOpHA4USkyxKrH+nSg9dx9iFv1 +L8hNegL0Rkks8Z4pIGKdDgisesnL1eYUxc2Am/Kn3facdkYjjTfh7niV0gL9hewJ +SrKqT5xmmUf60+RjitLFcuHWlip3NMEcj83xhOOD52BYhwnCw4b8h/x8ytAJbM29 +yHJVsYECgYEA53RqfOcVnCpDkNcdLkED+0oyKvWrZt4ywLIG+iE/RBk0FMIQ2KSp +QjfTprgcNyThVPskBqydJbtUpZUJt1RCJJmk7Dv67TIvFdDCIlADuvF9N592SkTc +DXsw1/UbesYULESoFI7GMzqXVcrYHcyOBw4kdquiv+63aHRTFlzEbvkCgYEA0PPP +t+Bbgexmc3FUWjUbcYVTkB9IkGu8AKs/DtMyj2T8iMlCy0U/2V4izH3JZRUFTls0 +c4fluWUpKhz+UvCL12zDxW/EagVxN9vDXgkQSOng4eTHke10eCNr1Su6JG9KZos2 +CSNkoj/8zQEVHC6dNV6vUkw3cpo2AA9oqCODCbECgYAQ5w2HxZBscSGyCCOXZyQV +S9vSC1LTFlL6g4XC6n6mSHjnMyzrxUqfDVilijh1Rno2LIj6+8wWH1IVLYciHkMe +TSIgJlkyzUFnBHHI87LyCgSs9TY8Qj8XtPFiNAInuyNqADGOHscWoqa+myuhMXkF +xuCe0fX2skYumKAgt/GYcQKBgQCG8s/We4nd8SWBrVHDKMVenbMIQ4wD6fBzpiWF +l5Tx01Ddrs36pfDEm+1xkFN/ewIARxsq+ju9br4VOsBuJHjMWqxdWP/LUVR7tO0K +UGQ6EwJwIedaMbek14uPEzyWx2GPtJzjbf5SY20LoYVWvCxACbTFPAAbfckeZNU8 +siKxIQKBgHUR3+/J13U0CrMjKjix4A0EhCRr0RfUtDB5TK1oD6vRx0HqoP3giKn6 +VC7+x7suI0Oe5gxjdlkDhagNSuDEIFLcWOPRujdDHi+jAbes5dIKdAZRiyvm10ya +kXi14uLts8MxoVh5tlnJKSboLAojhILu5nMMUbQBLZzamiYAMyS2 +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/secure.gravatar.com.crt b/cert/tmpCert/secure.gravatar.com.crt new file mode 100644 index 0000000..a7d6229 --- /dev/null +++ b/cert/tmpCert/secure.gravatar.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTjCCAjYCCQCX01C4JsnjlzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2MjIzOFoXDTE1MDgwODA2MjIzOFow +gYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEcMBoGA1UEAwwTc2Vj +dXJlLmdyYXZhdGFyLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBANiSKIVZJpjxhKu37Y5edPLzrVlwVzhi +LMEHOGwmKhoRP/vhg83QVNKmpNsjdtCBcJQbkOZeeQ58D7za7rTyMmLUzZWrvYaG +awZWAPPnlZFevvrMM85B1jiFq0OfrEAo0q1WOwZnnPJONTYmH4W+E7SWUodFay7p +FapmVHyModBsOuaZ1pFLu3tKu6JGk985U07wwlh0qVU+qkpD+AYirA8UmDPHYKtt +1ynBGc/uV/3qiqHWq3KX+CtJINwK0n+UIOBNbyTln7Wg3A4x4ffbF36x/Ewf0rJ8 +tO4oCiT9QCBSot/O9oMmTCEaR7bNTlHqRysoz+h0DqDzdCzKBi2ufJUCAwEAATAN +BgkqhkiG9w0BAQUFAAOCAQEAYivb7xtip5gLN7zlbcGAusvmie4dsPlEIcbgYsve +qku0fw+yxOYNuvqExJrerQ1g8VQbxa/ZKmDslyaFAQvdcnJqtOF72vb/HizjFOPI +AGDKpDkYk5NmBJ9I5eNm7K3m5jz2yGWP3ie8lgrtoDg1HXtYNSQctTVvBHpGZXfx +nKaHJqUFTN63HfwVei1qDA1YvAGMH8EDxAkdoVqhRXh8O3juGOQKvjuPt2YP1Ry/ +MGrMzCuBPHWts7Qi1DV7Wuw5RVNY3+X7omyKnMblqtZ3uutdyZdg2PaLrddiibjn +o9WW4hbVaQtM2tfjRRWSg9Tk7qh2Z2Am3H6cHfWfcLcV5g== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/secure.gravatar.com.csr b/cert/tmpCert/secure.gravatar.com.csr new file mode 100644 index 0000000..002d631 --- /dev/null +++ b/cert/tmpCert/secure.gravatar.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEc +MBoGA1UEAwwTc2VjdXJlLmdyYXZhdGFyLmNvbTEWMBQGCSqGSIb3DQEJARYHYUBi +LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANiSKIVZJpjxhKu3 +7Y5edPLzrVlwVzhiLMEHOGwmKhoRP/vhg83QVNKmpNsjdtCBcJQbkOZeeQ58D7za +7rTyMmLUzZWrvYaGawZWAPPnlZFevvrMM85B1jiFq0OfrEAo0q1WOwZnnPJONTYm +H4W+E7SWUodFay7pFapmVHyModBsOuaZ1pFLu3tKu6JGk985U07wwlh0qVU+qkpD ++AYirA8UmDPHYKtt1ynBGc/uV/3qiqHWq3KX+CtJINwK0n+UIOBNbyTln7Wg3A4x +4ffbF36x/Ewf0rJ8tO4oCiT9QCBSot/O9oMmTCEaR7bNTlHqRysoz+h0DqDzdCzK +Bi2ufJUCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQBMksfoeG7VhYaqN+i7mo09 +hpkzLOHN21uVwtDF9F2DkVPGYTDi9uz/BcCI/Xwi16ZaEctFkObhTw3rz6FJGEZA +PMz1VPx8rjPkYO3uHY5vQFwgQwePsxFBy58cq71aYJo4g262YUgzMatTWht5clux +JVjkE/RjsFI7MkFY+4PMLe+irXf6U9I77k2JIadU3YkuST5YpvJPmb64R7xLZam2 +6l9Bjo1UNcTmJ+QblbvwLOdOlfNx2mYHBeAZjN0UVq6km8X653f/HdI0SxfrItKx ++Z4MQ9KonAn8mJzSiXt9zkbISDLJ7EnUvhyx7bE954YL0zDLhFztH01/xv77DPdc +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/secure.gravatar.com.key b/cert/tmpCert/secure.gravatar.com.key new file mode 100644 index 0000000..ebb6e77 --- /dev/null +++ b/cert/tmpCert/secure.gravatar.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEA2JIohVkmmPGEq7ftjl508vOtWXBXOGIswQc4bCYqGhE/++GD +zdBU0qak2yN20IFwlBuQ5l55DnwPvNrutPIyYtTNlau9hoZrBlYA8+eVkV6++swz +zkHWOIWrQ5+sQCjSrVY7Bmec8k41NiYfhb4TtJZSh0VrLukVqmZUfIyh0Gw65pnW +kUu7e0q7okaT3zlTTvDCWHSpVT6qSkP4BiKsDxSYM8dgq23XKcEZz+5X/eqKodar +cpf4K0kg3ArSf5Qg4E1vJOWftaDcDjHh99sXfrH8TB/Ssny07igKJP1AIFKi3872 +gyZMIRpHts1OUepHKyjP6HQOoPN0LMoGLa58lQIDAQABAoIBAQDOUEab6jcT4plS +ATEkvKVKwYr1tkjQ5O3foaJFnQHkvWQn70lh60KzPp+0R4+ryHPYFH6wh3VpsBRK +BIL9C/GmJzYGjIpLuogAjDPyJz9cMldbkucTabLLO8PQ8y7kHD+/c3NdgZ2JU6nr +gNvszAv3sHDEfwRBtzi1kTCRSmPoqUF+hgldZx139iwwhY34Y2FgPi2ZQv7S2oOQ +c8+8x7/7ob44Uj6MeYzYrBAdmqlj9md5tvauoWLxGhcH8lR8A9SB+VYj36ZykkVu +nixAzmERfQps/U1MobwLG+ySJlAy7ekBAmXgsFX64pAM7ZTYnSM73EY/+1dNYheP +d6W44d5BAoGBAPN+8vzugqo0VTnDAV8zlrjxmob8SA6VohmlrDT8ABDI26zr8JHE +1YYTPRo4HziOTvVFQ21rRoMjZXchD8STTDgFTUyii7hj9hXkLthBa9ePeqJ++zs3 +4eTH+mPaCnx7GoXrCl3lXcGTrUADIRudOA2ZTXwD3KiH+SSkVBaRYQKRAoGBAOOx +P2GXRQCiJBdepnHR4/Km2b6Yc6OvEbc4N8M75lHD06gDbA4QfQLKPIAssPXWyGHw +JYfN+ENT8onoNe4hlbIwlraRy0x4g/BwjGn9cVAQ4UipXCJt5s2N4a3DbTV1hd+P +rNbEA7tWijVxn/8IJ9ycFL/LNi1hzJdsSThrStPFAoGAUL1AjzP7Kbruo5eQxeOS +T8L1LVtL/WIKfRydTHhfATHI/b7CZ2NwNeP9N8tyNsuhTNzprceLewJqq6TP2KvK +8yx25DllwP+MYtfl3Jlcy/5seKNIZOtzwOu6kA+FuJ8NPWihaF8cxopUQUyIVuK7 +6m5x7fRN36guqcK/izgrhbECgYEAuTypCLctHu/KFu0c0jpkjTNqsCGM6pxx+DIX +Q5EGtnxvRB/Ml8CYQ13OTKSPLuGW0f6yOcK6d+PizIkK3vmZtIbNBiikUUk2ZbTa +txvGRNIGxbtqxmPMwmvsLxZvUW+UAyX7AhojwxQLiqEu/idfbp3YT5R+Nft7m7Ev +/GNlU9UCgYEAgTSgD+BIYsD+KhHgK2pxhuwznQLuJXdNmv3W243nzrcxEw388/b6 +Xi+RwxoePnUKBPbU/QsD6Pc15P91bE3LYIMDsfAfK7/Z3kV2waL4Vy9AdNx5YJUN +je0atJR5ZEC1ZGB5eigAmAwG58ailueENKKK3EOj8/pt28a/G4tx9ms= +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/secure.quantserve.com.crt b/cert/tmpCert/secure.quantserve.com.crt new file mode 100644 index 0000000..72c19b6 --- /dev/null +++ b/cert/tmpCert/secure.quantserve.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUDCCAjgCCQCX01C4JsnjqzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjUzOVoXDTE1MDgwODA3MjUzOVow +gYgxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEeMBwGA1UEAwwVc2Vj +dXJlLnF1YW50c2VydmUuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvPtcU/27dT60+fbTLIESJZivqV8o +iyKNQqyR1aTVwDpE7stKUjYBPaIS3HErS+kPx2AtnJDb4E3SqnoJj7jynQwczoka +aVDkhdJeDJqwsZ3CHuBgRILSf4hF6yQNKEZoX3YSIwEfMEdKbCzk5h+JKZT1jLSp +yiNj9Zu7qcoHTn6gEIui3fNBzpmYBv4A+zbep8Xph/zyCJquiRCR2z0gwKBlK5cn +e8/VW9j4zkRBatkgqAvEu/fSc4O2+z50gpZSL+OW4m0cz6s3Y7pWRzoZDUTwLsGK +d0/AD5YqMTuhdqGwZ5BjE/wjvyQBjFeUSdpUjeWL1acK4KxOv5eFQKgkkQIDAQAB +MA0GCSqGSIb3DQEBBQUAA4IBAQDIYd91uLXyxYo8lVhnccGhANp8AbFVlwHHw+Pq +d1M8guzKsjPZoVSLGwc/hINOvx8jqk0xbvsMUc0rX2UKZ6av3OMUn5u3QQPvTCUO +u+OopkLn0MbyV7zYM+foo8eA6OvP3LSl90/QUUHiCl3PS/ichZbkzz/+hJ9CLiea +ytZci4m/+0QeLZT+xQz9FmAWw468O0H6MieI9PqJA5Kgh6ze8sywZdhbbBlgb2lw +PaiJo4Zlb//3uwJVP4s3GP4E1tQmp9U1D6MXpfMO6u9gSC9YAZNNmAlTH+yLbN0t +TCp8eStR0dYVhjZ378h0oxBW0C9tk9VhCij6BkuYmJGtAL/Q +-----END CERTIFICATE----- diff --git a/cert/tmpCert/secure.quantserve.com.csr b/cert/tmpCert/secure.quantserve.com.csr new file mode 100644 index 0000000..559ed31 --- /dev/null +++ b/cert/tmpCert/secure.quantserve.com.csr @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICzjCCAbYCAQAwgYgxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEe +MBwGA1UEAwwVc2VjdXJlLnF1YW50c2VydmUuY29tMRYwFAYJKoZIhvcNAQkBFgdh +QGIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvPtcU/27dT60 ++fbTLIESJZivqV8oiyKNQqyR1aTVwDpE7stKUjYBPaIS3HErS+kPx2AtnJDb4E3S +qnoJj7jynQwczokaaVDkhdJeDJqwsZ3CHuBgRILSf4hF6yQNKEZoX3YSIwEfMEdK +bCzk5h+JKZT1jLSpyiNj9Zu7qcoHTn6gEIui3fNBzpmYBv4A+zbep8Xph/zyCJqu +iRCR2z0gwKBlK5cne8/VW9j4zkRBatkgqAvEu/fSc4O2+z50gpZSL+OW4m0cz6s3 +Y7pWRzoZDUTwLsGKd0/AD5YqMTuhdqGwZ5BjE/wjvyQBjFeUSdpUjeWL1acK4KxO +v5eFQKgkkQIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAJx43innbBll8mK0suJ/ +rCBlk6AWwdF55QURon+npsdwBjUSxVWkTTMGVuMQAZhSDYOmCyJqLKW7oPgY8was +fLknmAF4au5jBClWo23IwmVBpZSuGN4GU+T0htgSw70Ltg21msWD0n2HM1YJaEmp +iwfqCLSytF1X0lgSQBrT4JopWRJkjQ8ayFAaRXalGNKd86P7aO1QCzBUJ1/bImPJ +P/nOtGGMZnqV9LUYyx29OAFgRulvyre5uHg0Ji/Sx3zRdIRqDi1yQUvJnqYflAJ2 +ZV9L0hpi8AZGWgLuUfeQX8XpWhd/CwDX+Lxk1dIpOJ79he5FvcFuoRspLz7HmJ3F +HUg= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/secure.quantserve.com.key b/cert/tmpCert/secure.quantserve.com.key new file mode 100644 index 0000000..ea92121 --- /dev/null +++ b/cert/tmpCert/secure.quantserve.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAvPtcU/27dT60+fbTLIESJZivqV8oiyKNQqyR1aTVwDpE7stK +UjYBPaIS3HErS+kPx2AtnJDb4E3SqnoJj7jynQwczokaaVDkhdJeDJqwsZ3CHuBg +RILSf4hF6yQNKEZoX3YSIwEfMEdKbCzk5h+JKZT1jLSpyiNj9Zu7qcoHTn6gEIui +3fNBzpmYBv4A+zbep8Xph/zyCJquiRCR2z0gwKBlK5cne8/VW9j4zkRBatkgqAvE +u/fSc4O2+z50gpZSL+OW4m0cz6s3Y7pWRzoZDUTwLsGKd0/AD5YqMTuhdqGwZ5Bj +E/wjvyQBjFeUSdpUjeWL1acK4KxOv5eFQKgkkQIDAQABAoIBAEcoiqJhpwVFwFVi +2C8oxpF7haFL4HNLZk9VtW/xqj7AchZMW8bK6PqxHVL+FeR2dGeJUoNilDhIdWuV +miYQ6OGznuEyBMzlFbdB+AHc+W1XzrFboUQK0oIM6O7aW03v/Pr89WVS1dCS93X2 +DZaNB1Ot8Cu0Fz6yxr/DjQ0oskmehLhIOra/tb10oUveUMQcSO6Wu+C6mhVB5olS +WdNYe91Jo8A0Ig0I5bbu+t5JZL91ppG9E1cToSzG9R9tKnYS+ed01CkTpzUP8xEg +vzh3GAtZ4F6p+aWRpbaQ0d2EdMB3PDLa3XH7yGiMKncN1KXC1ascVp/9lcUIJ0tq +FGiAXLECgYEA3A8ycKKSkT7TcGX8cxt1F9BEk08mZi8iqU4rI9Gy9k2Es3HJqFS8 +CDSjBJ949tgxWvkY8s0GYryt5YI59EEGf19pdZfhHW89TIDh4eqlBnXSj3lSAgtt +igifZfyMULwJopdqelawgNFQTmdILjY1bj0sCilGun2+YolTFEraRRUCgYEA29jL +/sw3LZkeATLGj5TTJHVZfuTQVY2ig700olCuflYg1uB3y06CdBK2/5y5mmxe/Nk0 +pHkIPGO/i9aWntNtMfiLWtuRQRa4YYh6sL8nMipgAhzZz8db2qE4Y1mvh8jhDzu/ +M/6GZrmebdK9N//gaTnO7oEADkwmGD5thjXluI0CgYAPKezr3ggDgjTHtf9jXyz+ +axeOnxGiUPUufXhzi2utlUHjq5+dvdkHJ7lkBCktuVANWMTjVkVuYFoLSqH7ts9f +z49QzxpwEM5Ei00FaEne3BeaU13XTjpKHLX/LRvuJEb1sUFhFMAs4D+MZ4mNxaaA +5i42tQluqGOKHrRe3ZmU0QKBgQCPvSp7WEgHXyI4BFvAiryWDMfL6IyyMx17Ztyf +94JvBZ8I/tA0NAulGotdirnrVkmwpc7+bkfNPCaDpnTqOTAeyPNMH1zUIqfA1Tvq +jcBx0zTcjMJ4UE8lHd3BT2UtsVA85oJ320VCqsAD7BJdJ8Yw5mP+modP0cfieAai +BmFBDQKBgQCc7e54D4SRx9z4XF8eG6sw2MYudIhPQQD6le/7qnitVLeb4jGz+aIS +kgMLcKOFeWlO2zIBLXdEBXaAe3+gqnte5wCh3XRStqoZ3VCHCbVqKheZX+IvtXx+ +ICL52l+4QPUmkSVEAtJSZn7gUB4e0BJ+EjFJWDhvGJbgYuxi+mo27Q== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/ss.tbcdn.cn.crt b/cert/tmpCert/ss.tbcdn.cn.crt new file mode 100644 index 0000000..8bccdd9 --- /dev/null +++ b/cert/tmpCert/ss.tbcdn.cn.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDRTCCAi0CCQCX01C4JsnjkDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA1NTgzMFoXDTE1MDgwODA1NTgzMFow +fjELMAkGA1UEBhMCWkgxETAPBgNVBAgMCFNoYW5naGFpMREwDwYDVQQHDAhTaGFu +Z2hhaTEOMAwGA1UECgwFYS5jb20xCzAJBgNVBAsMAklUMRQwEgYDVQQDDAtzcy50 +YmNkbi5jbjEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAOll+oew01HYwaoDbyDtUUyB9CEx9TZlA1ciewFWbnWs +148yI+niXBM1WK9xBVZWBlBh8twltsY4UJsZ9Qt8zGihDqRMIwyV6s6PhrwsH09K +Yj3hIxGFxX7mpqzuJ3M+VZMbjd5QoGDWq0HMH3PJUu/KFKgJQIx/o7aYs3PZSQWE +kHVk1fgDPOOOLK9JXX88B+KPlFeZhhw/T0CQtK2NqA3/tUh5xG+BwHEA/jonGi7h +jAFrGXH/UqKZ/rDglNadMt+Oy/MJCweGNeBttk1gBiZyBSH4caF+KTAh7FvK6118 +tMOhkqXjDi2fFLQJ/yB1efvrLNuCU2LBT3lke+cXxe8CAwEAATANBgkqhkiG9w0B +AQUFAAOCAQEAoNUy92KwJ48KvQvQi10EurnrsAVqKM50uaaKYeRJfRrMFq2bpkD+ +DWR0g8WHF6r2wLaOwnA+ymu4nPbYqpDnjIZ8VIAre7tmBpYVeEEd72Y1w+gedBbK +B8WbrgUOy5O55srhe6mNzvAmLL2y8ZoFa1BYNZqKcfblLUmq7nE2Nv6A+kvKKVJT +t+l8Oig/YqCRORbgmZ6TV8flgrzTOlL9tZpDmh8YfuivHYVXsk73FRYEPncvshDL +m0iKB7fa463HPkPzQUdjpGanN7SGsaoWiUs4yee33tD+wILtc0+GEtlBq548IRIn +PiSufWAAkvlA82x0x1A7LknZlGiBoY/Y5w== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/ss.tbcdn.cn.csr b/cert/tmpCert/ss.tbcdn.cn.csr new file mode 100644 index 0000000..269cbaa --- /dev/null +++ b/cert/tmpCert/ss.tbcdn.cn.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICwzCCAasCAQAwfjELMAkGA1UEBhMCWkgxETAPBgNVBAgMCFNoYW5naGFpMREw +DwYDVQQHDAhTaGFuZ2hhaTEOMAwGA1UECgwFYS5jb20xCzAJBgNVBAsMAklUMRQw +EgYDVQQDDAtzcy50YmNkbi5jbjEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOll+oew01HYwaoDbyDtUUyB9CEx +9TZlA1ciewFWbnWs148yI+niXBM1WK9xBVZWBlBh8twltsY4UJsZ9Qt8zGihDqRM +IwyV6s6PhrwsH09KYj3hIxGFxX7mpqzuJ3M+VZMbjd5QoGDWq0HMH3PJUu/KFKgJ +QIx/o7aYs3PZSQWEkHVk1fgDPOOOLK9JXX88B+KPlFeZhhw/T0CQtK2NqA3/tUh5 +xG+BwHEA/jonGi7hjAFrGXH/UqKZ/rDglNadMt+Oy/MJCweGNeBttk1gBiZyBSH4 +caF+KTAh7FvK6118tMOhkqXjDi2fFLQJ/yB1efvrLNuCU2LBT3lke+cXxe8CAwEA +AaAAMA0GCSqGSIb3DQEBBQUAA4IBAQAVLN/+D0UR+VYa3y5ASI2K6qu3o6SDFdVi +SvEHe7AUhZCjhhM9eFgahi4x49xa9GmKYTyFZe0JKPBfxMkH/TXoqBh8GZOLW0CQ +UeNi76flXQDkfHu4bCWqoB/JCPlgFvbxxUY7pb6spr3BN9koXu8AsikSB3eKGQY8 +GjI/lUr2Taw0eKftNT2TDLgtLnmcxjia06goAP2tqZKQLSk5gxkRYIXTXbFrtTcG +j2VzHjIJudgeLS+2ehhL2Xgf00rwYsIfU8x+1cnqmwrMNOE67GL1ozHPoYKtl+8u +L4jXPitK0fCAYgHSnGH94UwvYcqzHFHor1TQNh6Judtqq05fbHzM +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/ss.tbcdn.cn.key b/cert/tmpCert/ss.tbcdn.cn.key new file mode 100644 index 0000000..1b30fba --- /dev/null +++ b/cert/tmpCert/ss.tbcdn.cn.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA6WX6h7DTUdjBqgNvIO1RTIH0ITH1NmUDVyJ7AVZudazXjzIj +6eJcEzVYr3EFVlYGUGHy3CW2xjhQmxn1C3zMaKEOpEwjDJXqzo+GvCwfT0piPeEj +EYXFfuamrO4ncz5VkxuN3lCgYNarQcwfc8lS78oUqAlAjH+jtpizc9lJBYSQdWTV ++AM8444sr0ldfzwH4o+UV5mGHD9PQJC0rY2oDf+1SHnEb4HAcQD+OicaLuGMAWsZ +cf9Sopn+sOCU1p0y347L8wkLB4Y14G22TWAGJnIFIfhxoX4pMCHsW8rrXXy0w6GS +peMOLZ8UtAn/IHV5++ss24JTYsFPeWR75xfF7wIDAQABAoIBAG6+LHlltV8Ichux +NXFyKTkcEDIP+kGs/EDD44lm8VJ0iHMxX0kCVp3mmgXkopushaJuV0WNv4OeBOET +F+ozdOnQQZpDZf36xEbuYwe2B8Ufji2+PV17E5J67mrvNVjBIumCEXaC2xYXxXqa +1/GgfPG5+MMiYLZJeeyR19QILVWoAMij17HvCuPNLgncsvymK6r7wCsFsbR6fjtj +aBvSGibqiOCmli4eCAv5qIwtbhZ85+ZBGRNFI9PCQyteUHG+czA/J1Id21wJxnAh +eXpq3+Dt9eN+7eUoH5jojos7OCELstntF+k+6uZPTixiNdF+lqlNC5oNna8WxoRk +s+i/UQECgYEA9w94EqZOLZDfnYttV4nzwrMFPgt8hHJs+kVIlc17QjW8V0S/nH/b +PeQjehabe6PMsgeKTDlTaEspzr4TLBmxLXstG30v5y2vqSDmPDb5eeaJ7jVFEAUj +TEr7JgShP4VHD8PCNQRMj/kjIcI+NmKWiDrGpCcfYXnV55TXu21J6BECgYEA8df1 +DwLh7+JSu/++zp/JKCG25hS9/ySNFxcPtxXcmz/Sv1SK4LO/njH2tBpoTKV3hhwN +Mnqc1zwOU8vM+4pqf6PaFgHCX4FHevM6/+JVvAh4RJ6uoLzGTuQpi6CmDeA2iNSr +H4nSZFg6clq1cHVBmiksAHJRfnvAfAUf0OVkzf8CgYEAnYkammG7BekT/YRTU3de +nK7ET/zJCDdib+9Pyl29E8np74eh2qvYY82eJZJW0G7w7jBKqjH/kkgjP3YKCZvU +U1jwuU+JBRMnqGOXC5xOVcGAAAmtoPp1uIczP9nB7BwS5OWBZ4b3PvKwySzvuIQC +0pkP4sojg2dJ0yIgsZ2Ne9ECgYBfXYxZ7gYQJQwA7Fleey3EcH8B/X3qhYxJZaOh +y7IhWiqNnhXhg5/1Dri8zokAaGNYc+lUVXtReHIh4wSi0DMsv/z4npr6NC1us0k5 +rBOowSJD1NsBsU71vw0O7Tttz1NR46LTHfLj9NKfU1umy+Yhl0itqGawXLZLcW3Z +XwvAGwKBgQDOpzqDqoZalfV2VU8mEVJF6k1i7yCChP7obSZRAFltUzX71NsfU7M9 +BnMApaCKTklswOoHAfWKq24331/SSg2CqUl2JAMyFDmtuRJi+P8VZw0HX5X0WIpQ +Ikdwm6Fbj2k94odz9JdE0K7qKuwWEwk4wR64wRn8Om6JTSQ0ckgFnA== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/ssl.gstatic.com.crt b/cert/tmpCert/ssl.gstatic.com.crt new file mode 100644 index 0000000..c332bd3 --- /dev/null +++ b/cert/tmpCert/ssl.gstatic.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSjCCAjICCQCX01C4JsnjoDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MTcyNFoXDTE1MDgwODA3MTcyNFow +gYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPc3Ns +LmdzdGF0aWMuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuEu9oy/IYK976TTSRU9j8u8UVk2/9dx3g8fA +2PIdB4L0pYSjC3AiavK3C4FjZvYpXVImG9j0pxJb3VlofezMMolZCbbQdO/+uFYa +KsDNy4kwoC5KAUGqfh327jEmAjtQv6RgBUKTSAvEsefLY59JNvL8P3jU8MmZ5Tv5 +2o+/a6UuJB66o7g47Rvy8F+Fgi94WNCHtDXgjs3EbeB/9dqP7uBAMM0GjY229JJc +b6X1/YXC+86/fBTteIiJjHSsRhlx9bvQn9ZD6oJSHQDNwuhgNkpqHSsanuhrI/Re +4xHBvr7Am3q+QL5QuQvU2ER1EG4DXISn4rCZ8NPxULLGVcw9zwIDAQABMA0GCSqG +SIb3DQEBBQUAA4IBAQCTaqzISD5dRN2GiY8iYovxwdJWIEH/eLlz3j2decgs6UFV +SOGNckiKFI5dsW5o91XtvuC4Ug+fp7jUdbr2T9/jIU1r/8hJ6opTObHx3z+8QEVv +t4qbIWP1KlW1qK4mMOzXsYSSsFjMK8JCBTwLyh0QremFzAl8K0FVc80CcTynVWCW +FPJoNtXV5xqzd/4+s3hcdNM+V0URoKI5ZRQacjPWwf1pe89TI+ovdHguz9BU0hoH +poss2UDlM82aoFCTEntYRFOcT8b+uxcmoGUZtxZ647GJ+C1HIfMY8RS622uoN92M +0uoaudE9q25BcRTgj9z2JBKDQ1SXQrkRNGUAZEID +-----END CERTIFICATE----- diff --git a/cert/tmpCert/ssl.gstatic.com.csr b/cert/tmpCert/ssl.gstatic.com.csr new file mode 100644 index 0000000..48de92a --- /dev/null +++ b/cert/tmpCert/ssl.gstatic.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEY +MBYGA1UEAwwPc3NsLmdzdGF0aWMuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuEu9oy/IYK976TTSRU9j +8u8UVk2/9dx3g8fA2PIdB4L0pYSjC3AiavK3C4FjZvYpXVImG9j0pxJb3VlofezM +MolZCbbQdO/+uFYaKsDNy4kwoC5KAUGqfh327jEmAjtQv6RgBUKTSAvEsefLY59J +NvL8P3jU8MmZ5Tv52o+/a6UuJB66o7g47Rvy8F+Fgi94WNCHtDXgjs3EbeB/9dqP +7uBAMM0GjY229JJcb6X1/YXC+86/fBTteIiJjHSsRhlx9bvQn9ZD6oJSHQDNwuhg +NkpqHSsanuhrI/Re4xHBvr7Am3q+QL5QuQvU2ER1EG4DXISn4rCZ8NPxULLGVcw9 +zwIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAJ1s29BkyXiA2NU1lr7paeh0WIaY +B/TEyLm1VmHepAXiIt07sJ9r1d1LIlgkiiZDagGX6U+aFFOP6E6BNEuUUiP6Jxp5 +C5pE2Cpk0syZZrcs9x8UqNieA4KA+IUQt909lDtmgDP60KfBC0CAmlRSrO7d2w4Y +BVgEZukoAS6WZcBkR9HuTvEFlQ0OMkfAqm2my3dGmYh6XX47P2XE/gFtyasp2A9y +ZXxOqbnboB61LWajFfImEyhhyzR0ra0Rg/GNLsA1IH6tAyBRqYftZBnUPADnI3Pe +p5+92xf8gaLHCz/OVfC7/uws7lV0yn8fl1QqDq/tZRUL6+NoWY0bRaSKlEk= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/ssl.gstatic.com.key b/cert/tmpCert/ssl.gstatic.com.key new file mode 100644 index 0000000..4460b36 --- /dev/null +++ b/cert/tmpCert/ssl.gstatic.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAuEu9oy/IYK976TTSRU9j8u8UVk2/9dx3g8fA2PIdB4L0pYSj +C3AiavK3C4FjZvYpXVImG9j0pxJb3VlofezMMolZCbbQdO/+uFYaKsDNy4kwoC5K +AUGqfh327jEmAjtQv6RgBUKTSAvEsefLY59JNvL8P3jU8MmZ5Tv52o+/a6UuJB66 +o7g47Rvy8F+Fgi94WNCHtDXgjs3EbeB/9dqP7uBAMM0GjY229JJcb6X1/YXC+86/ +fBTteIiJjHSsRhlx9bvQn9ZD6oJSHQDNwuhgNkpqHSsanuhrI/Re4xHBvr7Am3q+ +QL5QuQvU2ER1EG4DXISn4rCZ8NPxULLGVcw9zwIDAQABAoIBADv0J9UWjlElxWGw +VVdG5HT7YdpRoMkS165/JTVuThNLftr5szDdYdT48KNFjFjKa9p4Bv24Lp7LUidI +Fr4gcq1eESEf3+Cq0mqVWB3gaxJzpuX1KQ4Plq9AgDwssPi44yP1DWeoqNEfQvW9 +OmVGREMj+PuNC3jpnK7+O+HmMZeKr1lfkIYcGodZCjv3SJsqA+hnh8JTA+r6F+G/ +G8o77qF5U3aTAH4OWI8avkQAzSaaSjzqYqT+Cfb+vvjzwKqQIY02H7dopX4si7mi +w7n/cGAxK9lbbtH2CGOWK0RXdw/7+GvAD+Y/s+C1BuDqGyEXIeJhNQV+o0Xd1Hjl +CTlHA8ECgYEA5SSCBqgtb9k7zSmW300I8fV+0p1DWMjrka5omDR7cBwbqn2Byp1C +nTcheqhjBFG7zD5WBLzBokCZ40H+PjimNjhy5YTXVVrchJS2QzXt1DzsmXNI4wm1 +mb4fjcMR/OSCVH7iUBoXAOSm/Oo5PnzsKh8KxCXTo4sVmvhP1sDpb20CgYEAzeWX +x/2yKZOXswVM9w+PPdVlr5eJ2JVlq4ubq1FF2aJzQjmzR0LSqGt2SvqqMdin2jhG +4S3JRKA+sSY3G111ZLFglgagci1zKArzcklQffQpICvD9MGdtF5Ch/4/zNUDKmj1 +FZqaUXUwA/M4Hug0fAszGb00FGj/Db07PNWIEKsCgYA6eFVhg3qMpt72nB0uf8a/ +jwg8j/qGZkaOFvYDmKjC07lPiNUcsYI1AcNePCeAC6cjF+j1LoEueNOLxOQuVmA7 +R64x2PLlidjpT9UuU02Lsbwh7+PyYyDeyT/d+Z/WayzCiNoQ3IdwJ+hgcxgGVPQi +T2d847YcbjomICSnRPSMBQKBgQCAM/BxV5di6gKwNqG4yFhxsPlS/3GWiVe4HAK/ +BqkOnWdVGiZ2PbZ7pgYPI8trpDLH3vjLZz4GXB0NIvV3NZdOLmAsqk2nKoOksETr +qZjUBH7DCF1IfnJbB8I3eWlyekQxWQ8Z950VEXnnS79rBzz+695SrYvLFaGShXxo +IbFKZwKBgQCGE3t/MBDcJXXBQvPpwWWdsdBI80UfyASSouRaXS+LYuirO1+E7kjd +nFHnH/Ab36zAaDkg0tsRh4M1/1VC7X/v5HMF1qk5Vq9E7yhso5IUf8BkSqmJo3cv +0A/bMhnjI1F9gogUh2l4qkgRnFgCbN293+aFZ3e3Jgjzul6kUSkv1w== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/stackoverflow.com.crt b/cert/tmpCert/stackoverflow.com.crt new file mode 100644 index 0000000..34e9ced --- /dev/null +++ b/cert/tmpCert/stackoverflow.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTDCCAjQCCQCX01C4JsnjpjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjUwOVoXDTE1MDgwODA3MjUwOVow +gYQxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEaMBgGA1UEAwwRc3Rh +Y2tvdmVyZmxvdy5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDgOFIBi3huGgZcm7U2rPuQ8gcP4tbKtoim +bPRQofeItuTS3KzclVGJfEpxTh7LDd+Fxv7ISbUmJw+oiuWgwtkQH9StQI4q+gBw +Ff0Gwve3la70/gYRmwa1RhhTUK7MT7Rg4rK2ARZ9cmGkhO6DkkLfxw5fM0qCVaDE +8GMgDtFPvMJ85WZj0nuGjLymeqs1oJ0LOAppZHbaHSN+y7pHQ5FegGN2OAVeoYTr +RVxrHCQqV/0EIotIGU6Voi9NsTASDckG9xHA9cZZFFg+HYpVzKZmsQA0c7tyIC14 +J2psrg1Uhf8Y2ozPIp6OmikKX6qvAwWtXaZ6SfrPAW4HOczruPXHAgMBAAEwDQYJ +KoZIhvcNAQEFBQADggEBAFsTNtg+UiKvY8QT+w0TfdSKnt30m5XnugKQ4sbKcNkd +PbdTHIUZeOKADeLx3u9KxMrPZwNUAfkmtT18S8aI7FJ4CGpCA8vU9BLLzcvSfIzf +O26h9I/27cUD/tpH9RQamcLhgZPAhvXrcRSDu7hpMTqp2ukD8LaKoO2Xo5wQMxTp +k++yJHpwbOBoDnA3mwNKIlry221cf779QbcrJDGoiO2i3P1iNJ7C8PY9ZL4NM+If +KXcPvJ27G2dP75/5nFd3JPLDd+MZ1aQceJoHlFU5UxlicB015If2hGkODwCaSszA +qcglVwDHI/SE+iyRW+g3v9zGMER0bXGLiysBvRXAwzg= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/stackoverflow.com.csr b/cert/tmpCert/stackoverflow.com.csr new file mode 100644 index 0000000..a85b48c --- /dev/null +++ b/cert/tmpCert/stackoverflow.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyjCCAbICAQAwgYQxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEa +MBgGA1UEAwwRc3RhY2tvdmVyZmxvdy5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDgOFIBi3huGgZcm7U2 +rPuQ8gcP4tbKtoimbPRQofeItuTS3KzclVGJfEpxTh7LDd+Fxv7ISbUmJw+oiuWg +wtkQH9StQI4q+gBwFf0Gwve3la70/gYRmwa1RhhTUK7MT7Rg4rK2ARZ9cmGkhO6D +kkLfxw5fM0qCVaDE8GMgDtFPvMJ85WZj0nuGjLymeqs1oJ0LOAppZHbaHSN+y7pH +Q5FegGN2OAVeoYTrRVxrHCQqV/0EIotIGU6Voi9NsTASDckG9xHA9cZZFFg+HYpV +zKZmsQA0c7tyIC14J2psrg1Uhf8Y2ozPIp6OmikKX6qvAwWtXaZ6SfrPAW4HOczr +uPXHAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAnCMFrsHIpromJZl0mOo5oqvR +DfdMv1X8K4+bD5vP1xhnhemZ/pehBralMxwhmu8pgP9YyfEwXJ0RYdZO79/gTQub +dxZnL+UDAJVFlfqXR4yQQVuU/9/lfIkzULBraLfOmeDWHvj6FebF16GdX+MjtLQ2 +xVCmTAlhvRgj/c+EOQjbYPeNVZQn3t7c+KvyCzlDnB7cfr03ODrHlFP7VwsaxCg4 +4l08g1ZZt/gtRkqFxFkhyDdBl3X1DwnPR1FQai+C18/uw+Sq44iEp0Fgt1RBRxQM +1r45RqjnyDk8LdTqRnk1GND0oIcOrcWO75eKDi4TaDjucnB0hch6dYbcBt9bzg== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/stackoverflow.com.key b/cert/tmpCert/stackoverflow.com.key new file mode 100644 index 0000000..471583d --- /dev/null +++ b/cert/tmpCert/stackoverflow.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA4DhSAYt4bhoGXJu1Nqz7kPIHD+LWyraIpmz0UKH3iLbk0tys +3JVRiXxKcU4eyw3fhcb+yEm1JicPqIrloMLZEB/UrUCOKvoAcBX9BsL3t5Wu9P4G +EZsGtUYYU1CuzE+0YOKytgEWfXJhpITug5JC38cOXzNKglWgxPBjIA7RT7zCfOVm +Y9J7hoy8pnqrNaCdCzgKaWR22h0jfsu6R0ORXoBjdjgFXqGE60VcaxwkKlf9BCKL +SBlOlaIvTbEwEg3JBvcRwPXGWRRYPh2KVcymZrEANHO7ciAteCdqbK4NVIX/GNqM +zyKejpopCl+qrwMFrV2mekn6zwFuBznM67j1xwIDAQABAoIBABHljO4gosEvBJj5 +uLIfhojgOJ4U/g36Gdgm1C1ncCmSZ5tJD+cfZ/2wVQTMNnsApXm5E3cLIxFjhsVu +KLv3MXovADu/7lkR0V0g9CxI/ZrCsM9PQ06+b/+iE6j6xKj8J6qgDaGnXpMuwQpv +rdYEo5/W9Je2sVjL2uQ9R7w0UpKpmR5fx2ZqiExaxbON4pxU4Ug+k0AfWNQ2Bpnf +qf2ZkNTVmj97kkXP41hGX997zNkM5jYG+nYdoyoonds8Q7w6JP4EErzD9HAOmszY +TnSMF4bWQp14etZ3rNRM0XaA3OE5k1WmIMl2ipf8kL2BP5WTrUrQdpw5cyXO2U8O +2ybL/dkCgYEA9ZfGJqxxAZuCPWd/4PLBxGR/t3l1aR14kI5FOIEWT4oMBPldbd/h +oNYz+iaqtoIyWChbiyRN40Ad4/Q+DutD0S7/6sRy4hoVWDpMIqR43QNf+ds4xESL +AvgJPQLvkhZU1CEZ7iNhbl0XZRDGNYORdxSmpDWpiTkD5RY+LbYF0zsCgYEA6biw +wXGx5aNwlMNhQqP9jMooqeqrB+LGAi7P0v/+14PIJg6N3gvhv8L2Q6/6ZHaunIrf +M5HzlaCZlQKHMiiB99X0qyEugsJMIos6Hq7N+9j58K6GwcnFWz60I11lPzDCr2LC +aMKX1P6CMQ5/ONYhTa3q3QpvcAHaJXPvhhJ05uUCgYEA3RqJQKQbETFp7dJSZLjp +DeDUwt/MfpgTxUDwvNAqv+0uqQO/w3296kkuflV1d957aLbcw8YpgSBmSKXJgTD5 +20gPCtNWAo0tDkNd7Apa7c9uBsoAr2JuLHwWBSGxgbotINW0PJsJyoxw1YJmkCMl +QSoMZOYS/gGgqgx+ajTnxaUCgYB0fPDb+WbJJaS/AIJBTKrauQd7aNLFo2k9PUen +yp+hmrTvAuICgbmKcgl7wwHxgJWWwEBu25ekQ99IPXJUtYvRknnXsToVQfHgZbQa +BtXzaDlqlBHmFEKhL6do2OvVit/9uiNbQ2GZbyBEgw01rsP6i2w7ry/Li6DGefov +wJMzYQKBgGUou/tk+4BHU5MLAtex9NUU9phkQ8RWdOdMb7k2iRr4+Bll7tfNaqDr +c8agfJI1N35Q1PrNCDkArnH0LyQ6ljWfAKHImhTRCM32ZbSl/j/3bbGIsqkf9XN3 +hX+ZCSkAFIfxxA+Wyc6cUmURRD5QOe8zJ418jVQ8Q0Iv8hP+0v6D +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/travis-ci.org.crt b/cert/tmpCert/travis-ci.org.crt new file mode 100644 index 0000000..945af43 --- /dev/null +++ b/cert/tmpCert/travis-ci.org.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSDCCAjACCQCX01C4JsnjljANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2MjIzOFoXDTE1MDgwODA2MjIzOFow +gYAxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEWMBQGA1UEAwwNdHJh +dmlzLWNpLm9yZzEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAMysWNK1qI8JrRBgn3gMe0m0IkcyR1N+iLbpRsv+ +7aNW8EMmMIDcTjdUEDtdAIX9by8jbumoQMxEl5G60R7D+2YMMT0Qu9pM5uncXyNQ +LlAsJsGPQRnxUBRhMRP7jBniBDkqCXwLV3dHpt8kkBj4blC5HPicHjZZfE+D6300 +xrC5LDVDUi57HwSGUirKwai8baFjWa964lwhoCAA4RXCwXvGSBPdNwItSYuleK/R +Ugh4EliB7JzXQHhoXRJjBybiZ27n0BtV7yp2fZPlQlpq1eXwA+KPC612Xi60n/ss +WFQKgGt26NlC+c67eEO8YSJwkfNAsDmeYnpSXOQGxkRWelMCAwEAATANBgkqhkiG +9w0BAQUFAAOCAQEAxJrlxesUu8h3FKdepvIkz9tELCDDb75QHEgduTyT1WAzbrPb +5wGcq9Xo3VnbJdI3PZw1eL1CnDNaquU8d5JTQ7u3YVgcOlJEZ5b+rszVdUlv+lWk +7awrqMs9RicBUAu88qtamtoRlCxfvwrSavCOnfhnZ1bij6EHnOlDAEnTPq6K00HO +KeW57Bi+qLrGQgyn/Sqikljp/a/kWgwqZhe/UJfVf/3bD3b95EEwJ8uLmEWpnQ17 +SMIuG731+F3Vn4oNVcsyzdcw1J/1SkacauCBtZmJyHiwnmcj/3kEECx6Qk5r6C3F +QIDh3YVCiAV35VHaxQ3kdg/RDzqFx2yvyQQW4A== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/travis-ci.org.csr b/cert/tmpCert/travis-ci.org.csr new file mode 100644 index 0000000..b140748 --- /dev/null +++ b/cert/tmpCert/travis-ci.org.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICxjCCAa4CAQAwgYAxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEW +MBQGA1UEAwwNdHJhdmlzLWNpLm9yZzEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMysWNK1qI8JrRBgn3gMe0m0 +IkcyR1N+iLbpRsv+7aNW8EMmMIDcTjdUEDtdAIX9by8jbumoQMxEl5G60R7D+2YM +MT0Qu9pM5uncXyNQLlAsJsGPQRnxUBRhMRP7jBniBDkqCXwLV3dHpt8kkBj4blC5 +HPicHjZZfE+D6300xrC5LDVDUi57HwSGUirKwai8baFjWa964lwhoCAA4RXCwXvG +SBPdNwItSYuleK/RUgh4EliB7JzXQHhoXRJjBybiZ27n0BtV7yp2fZPlQlpq1eXw +A+KPC612Xi60n/ssWFQKgGt26NlC+c67eEO8YSJwkfNAsDmeYnpSXOQGxkRWelMC +AwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQCOqm2WE0FWbjVBQOYCluYSuYNcxgVV +vVwtkkPfbNwYN6ZxKMOziAHCst3AjIJUiYx+x32EOIyO5gqqIw2dEUXgDqaRHQPp +2jc0WVQ/UHBIithaz13ZqNKOk7jRa1WevqHIXGL5eyx3b/CXdLpvkPLxHN3asqIL +tppSmYpzalw7J+KTqe57jgEUKz1axHQPrPkiT2wS2uq89t4z2GHxco7wRDRChxCx +VJgyIX3Pmc+EIIJ+t2x0YmIGGI0nGnWWV+F21Su7zjp1XNi3CrJJsRkcj+HL7HtR +cWmQIVQOo3urYGbIGXj96PMJUvfVg1MxrHs26tX//1XIv3VsV6JZguIJ +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/travis-ci.org.key b/cert/tmpCert/travis-ci.org.key new file mode 100644 index 0000000..da8dc76 --- /dev/null +++ b/cert/tmpCert/travis-ci.org.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpgIBAAKCAQEAzKxY0rWojwmtEGCfeAx7SbQiRzJHU36ItulGy/7to1bwQyYw +gNxON1QQO10Ahf1vLyNu6ahAzESXkbrRHsP7ZgwxPRC72kzm6dxfI1AuUCwmwY9B +GfFQFGExE/uMGeIEOSoJfAtXd0em3ySQGPhuULkc+JweNll8T4PrfTTGsLksNUNS +LnsfBIZSKsrBqLxtoWNZr3riXCGgIADhFcLBe8ZIE903Ai1Ji6V4r9FSCHgSWIHs +nNdAeGhdEmMHJuJnbufQG1XvKnZ9k+VCWmrV5fAD4o8LrXZeLrSf+yxYVAqAa3bo +2UL5zrt4Q7xhInCR80CwOZ5ielJc5AbGRFZ6UwIDAQABAoIBAQCbAgQbQN0xx2A8 +wRDFOJ6+ySAUz61ZPMGJ1c56fM25IQTBtlCRp0fNe2r3qo3U7IWiK7G6YGUCzwgD +pHrwU/k35g/8cYnz4L4Za37aHcWVjnqjqTziyvGdHaavvZjzmUsdiAq62VQa0Dc/ +VE+VucDCfg/E8WeoPcl55y0YHDpGZ/ymXyw5QyZYjqo7xGMV4Wjb2cKkp5hA1A0/ +iv4fFW//QBeiFxsFFc6felexr8HA8LdXSd09i4dk+4tRDHRRrUO/u6H7yAuFqh3F +g/kj1tHq+DzMg8+6ylSfaF5fRtQhNC2Owtwb8EHZYHvtfzwki48e1dU1rECdOtS0 +hbHQqr6hAoGBAOel6gijqJYOD839irkyf1Ky2QI++SU0zChJuLhnZvXCYxGtl/Ir +CvjwgQRZ97JREucxH8kfICECQbCxpoCeA9yL+dpdCvUt04EkPa1Ag0GwjjFOHyeS +mNHahElpFttVfaPlirhYkUgpZqdKWTQrchAZ1xV2wMEdw3PFeIK1J/xJAoGBAOIw +fP8acs8hXslcU7ClAbRmQk5JmHBKZQtMoWZt6NgxK7iHWT6MAyHxPbDAzdtWILlF +RYADkL6OFAV4SbT0Kb7cdF9bRi7yvFLpuCf0KQ1/1rLQgu6k8C5V1Y1wz2sGSQhz +uVG2672Kn2vxtOhDwN+v+wMAgPGo/8CX0qIj7am7AoGBALm1bZZXfgQuacU+ikRG +k4R9FTSTv7FwTmvODmTnoMdNe5bkkHf4wecpCIWwir9N99WYsF7QsTVFVdyNz2o1 +Q+s/3KKPDQXaI0HZCAkpOxEithwZASj8gb9ba8pekZBtTThkAX4govgzGLTtCe6l +FeCKlsACYC1x6wuZOC+xg8jhAoGBAM3J48+NVqtQ5xY4pAPw/G4PI4BqwQBZDzmK +jMXOdaxMgESxD+cyJ594BvKLWD+YSsmFVsgzdjuItHqNiDHUey6lEFO5jU8llWWy +MtRW9grMJqAlyRoqgkMF4PeAjZYH7+Z6sz6/OBgIySbCkB9JlW9uguemS6qSYa3t +87uFCLQFAoGBAJygHGqU7GB3H2cRrIvFaQk85tKitGjzvWb+L31ewURNzcVixxE2 +LwYMrdbP0VHhpDZ3k0NOlqw4r4idpF6XloNeHwTPC8GZ0GwIbYMOhQ0rdPUP4tB3 +wBI0E2zPBoiXoYRMZHDlqNTKhN08QwF1PYhWFEt1ldzbetJqRpu+EK9t +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/www.alipay.com.crt b/cert/tmpCert/www.alipay.com.crt new file mode 100644 index 0000000..978f641 --- /dev/null +++ b/cert/tmpCert/www.alipay.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSTCCAjECCQCX01C4JsnjkTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2MTgxM1oXDTE1MDgwODA2MTgxM1ow +gYExCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEXMBUGA1UEAwwOd3d3 +LmFsaXBheS5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC37FQN8j+CSaUVC+fSy+Tj8hHzjlBlg2NoDCxi +57bLdlx5RUHHhsceSanHCZTGM5uFPcBHnlU1MfXRhOGmDS+NtEtf8l1cNwRHItFJ +ajGjws+soyECbNfTm/Z/tBPOHpI3RTHLRnOC3OM9IpXyZ8zb27UKVz4Ee3Gmz+EX +C9FO6ozipZG2IvSZMTjuE0XIgFzC2Xv1brHySuUj9MXnbxj8hHfHcmbv/W6oa3RQ +QsjEepRPMVbi8trM71Cpuu/v9r3f50J/vmU9d0onxY97tuE8ogWyH9SGmVrc6KzW +noCCjNzt1v5nhtQK5VjSSxfYVMoVNpy+3Wi3rDReXR97IZVLAgMBAAEwDQYJKoZI +hvcNAQEFBQADggEBALndQUiPr6/XgYhaYPeUVoQHPU/2fqidu1MkEV6PfLZYsfY3 +LZWq0qWXWEZ6FwJJapm0Mqk2wsgQfe5rvmj5EZcohD1daFr9wIyEyfanEs0B+Ajz +p5SgkBuUgGNMtkbP7csLxL5Gia+bzg1ljsJ2/FMYJB/YcCE5Krx4ePfxRw1kTK9Y +GLVpXyR6HGsnSv8IuSIMIi8t6iDWYG4DMmiVsUCzKn6Vk2ZXptWUAgqWCdrWZs3+ +YpXq72xxlxbVCIysBFX86gV8w6Q3vMkGVeRzBybdzkoxJs3I84zkakcgj4NqHo+G +jFQh3lLeLf8ovykFajS5lLdPew2LXbhpB1gaVMo= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/www.alipay.com.csr b/cert/tmpCert/www.alipay.com.csr new file mode 100644 index 0000000..623fa4f --- /dev/null +++ b/cert/tmpCert/www.alipay.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICxzCCAa8CAQAwgYExCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEX +MBUGA1UEAwwOd3d3LmFsaXBheS5jb20xFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20w +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC37FQN8j+CSaUVC+fSy+Tj +8hHzjlBlg2NoDCxi57bLdlx5RUHHhsceSanHCZTGM5uFPcBHnlU1MfXRhOGmDS+N +tEtf8l1cNwRHItFJajGjws+soyECbNfTm/Z/tBPOHpI3RTHLRnOC3OM9IpXyZ8zb +27UKVz4Ee3Gmz+EXC9FO6ozipZG2IvSZMTjuE0XIgFzC2Xv1brHySuUj9MXnbxj8 +hHfHcmbv/W6oa3RQQsjEepRPMVbi8trM71Cpuu/v9r3f50J/vmU9d0onxY97tuE8 +ogWyH9SGmVrc6KzWnoCCjNzt1v5nhtQK5VjSSxfYVMoVNpy+3Wi3rDReXR97IZVL +AgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAZlkjHSf6P3rNSbKavLrj9lLb0de4 +A6Hz1oOOexXL7SyoWUhIXivoEAJxJwQmPBoFV2z260G9PfEhJelQPdZgIeRhIDMz +Hd1/yFxEXl5YkP2uNdL2cyuQ2WMZM0LHh5quwLZZWyBcP+e+KCwCVjS6uGg6wBYg +BAycHQuWczmBCfJdMGy+ZYxJIHBrqgFSQT5B+MHLjQFC6+6NcaG85jm6pboO5bq7 +yyLLRfwIUL+A1uEpOD3SZmq/sLAIE4f5Uh40w+EGavrPsfwbuzvUvgDHSvImvtjS +Nj7bK/ZX3fVYpw3mvnT6bq/YtCBmYCZg5VXghzYQ2QmyKGF4J4aS24lmRw== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/www.alipay.com.key b/cert/tmpCert/www.alipay.com.key new file mode 100644 index 0000000..1597adc --- /dev/null +++ b/cert/tmpCert/www.alipay.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAt+xUDfI/gkmlFQvn0svk4/IR845QZYNjaAwsYue2y3ZceUVB +x4bHHkmpxwmUxjObhT3AR55VNTH10YThpg0vjbRLX/JdXDcERyLRSWoxo8LPrKMh +AmzX05v2f7QTzh6SN0Uxy0ZzgtzjPSKV8mfM29u1Clc+BHtxps/hFwvRTuqM4qWR +tiL0mTE47hNFyIBcwtl79W6x8krlI/TF528Y/IR3x3Jm7/1uqGt0UELIxHqUTzFW +4vLazO9Qqbrv7/a93+dCf75lPXdKJ8WPe7bhPKIFsh/Uhpla3Ois1p6Agozc7db+ +Z4bUCuVY0ksX2FTKFTacvt1ot6w0Xl0feyGVSwIDAQABAoIBAQCEB6zXTh11I/TT +xPYoBqJLWAy28GSaWtVTbdm3Lmu0Z0U+8Q6lcwUhovOzpBceqRFtdsS/JNQ6GaFD +RMbPcwu+B71MJSoL9pqljkL7FraHvmNipMAfg47zozQyvEyzXJLOBmgWan6lZHfj +/R3zI7yV34R45ePpR8xwWS5WYu9gXBwCkJyMIt1g0iErVnPTHxG7c/Zxr0EScx8G +5GJ0DmCQj2yj3TBFhwpAYERq3hiX+q9ruVNYEaWi/hLK6T4nneDwVY2HyVw4WGaJ +or8fW6kBbU3kb7FkDFo0IaWiwzzjS1PifYZrvF9pE9WjczCUXCELQr6L0T3QVHtI +8Et2tEfhAoGBAOEq+l5G9eApyo6igcN4okuK5PXoFIL85yRXcc0nRSs4VcAXdqey +HGUcLBdBbmIQgDUiyXAQ5RXo4K1TMa108nHeTJSRaoawJZw3zwCk21pXs0PzZeMb +aM5Lo2eGOeFGGp0NOZE7nPq17OYfaAXA7nGeUuIIjqRJjfSC4C6v535pAoGBANEb +j2ON//Yxb6TKkx0Gy1rT/y26WXuZFxXhv1qbnUCPEBNQo38Pm8HuIxBAK5Zp3nMI +W4AIwc6/UV+hNwLlx0t7k+v9PknTt7PTKOjJU2PSzMity3GcTk0/a62SE/AHQpNi +Ja/mJjt3c6wF88EMZKw+q1iDF/ZzWew/KBKzIieTAoGAO/UAxBfrIuyd5ks5eH5n +4Ou0OhK5W4PSXKf4QqOhVHfkxYi57L+NthLBXtPqe6xfJ0cDEpc9GQ9wvFZ51PFe +GZoTFECAeCrxaN6nfUloq27M6lwmlknXJ4+WjFt+kBDlx0odOSIBk/Tbhw932Ihe +Ndztvwh+SxrW9PPglC3823kCgYApXf9m3X+mj68bdavW0TJHnKrdvADZz7ZecNNv +NFvOmr6+Y3SEvWy918N+AoPc9MK6FQws7w6QPQ73ESiV3SkpCKCBzg6VglnULFDq +hHGHzPsQNDmMFzTyWTqPEtf44ybLi14TRz+HAiGTBXZsWWxNGvTAxOZnrfg7IV9n +G6MFGwKBgQCohLTx8VAylX7+xJsZXtGJQHGeBf+cSom6LWaitYBSfVkq2Lj+Jodq +iJ2/EIHRS5633txVkx7J5Q0hkHouoq7FadL0bTQyIUk1iw0ywxGfn+1JPVxgdR6I +BtUChfSb2mst/pxbLyCDVuOKsNUZKCz19iyXUfWbueCN1vk0XSxDgA== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/www.baidu.com.crt b/cert/tmpCert/www.baidu.com.crt new file mode 100644 index 0000000..1adeea8 --- /dev/null +++ b/cert/tmpCert/www.baidu.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSDCCAjACCQCX01C4JsnjjDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA1NDEzOFoXDTE1MDgwODA1NDEzOFow +gYAxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEWMBQGA1UEAwwNd3d3 +LmJhaWR1LmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBANR5LMQBbBR9n+5er7aXqrEE5RlcWRiK273a6tTC +/ehNnUHPPJ1+soLlHcXI0VzHUoq0yf3CX37oiZn/SlhlvVuOIsg7a+B/mhgH0Kud +lZioMHu/ZQRtWunHtJE8Mld2qkWGbu1YOx8SClqoayn6vHZk3pwoYlVI5ODLq81y +WZtmybJFMbok1J+73j2svY+tBUIyh64G/jFofnVYFMqSosUoeOSqbxiMNJvCSXPZ +wblXi2aTO9CZ7pob6TxlCHDaHSJYiZxzXERpdFPxMiw7UrLLwoGhHQSyeDBd5X85 +RmW69F8rj6bQQ7S+4KPB3JjCY9bYLcFlTDn0eSYNcMo6RocCAwEAATANBgkqhkiG +9w0BAQUFAAOCAQEAeKgvh1RY7h6C78n8Rl5Fs6I42reEkyjx8koUpV1wiMIrNrUy +O4GAVAjtTKVa7pWMHwyE+is17Or9bs9L4EP76qsL3NoR6ijsq0gqdIRSKNT19i7I +i4hQAeTPjw9RGlxM1icmKR8CLAVSfXGAfyQxVZcstAPcMmlNF9BV4KdiiiERbkIO +tvF2B0vEYGpB7wiU/2ChIWxEgtadsxyZl2s2YszeGMSg8ra0RGB/ChcXr9luqZ0U +kY71RuQebG7zjOTI61XKfd4B080MHhmiRR91IB+njkQ+PUUGlUdtye0Lo6yFBiv4 +eNNL1GWlkOatYCDHgN/nJokV5g9HyyDAuuGQIA== +-----END CERTIFICATE----- diff --git a/cert/tmpCert/www.baidu.com.csr b/cert/tmpCert/www.baidu.com.csr new file mode 100644 index 0000000..10dd156 --- /dev/null +++ b/cert/tmpCert/www.baidu.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICxjCCAa4CAQAwgYAxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEW +MBQGA1UEAwwNd3d3LmJhaWR1LmNvbTEWMBQGCSqGSIb3DQEJARYHYUBiLmNvbTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANR5LMQBbBR9n+5er7aXqrEE +5RlcWRiK273a6tTC/ehNnUHPPJ1+soLlHcXI0VzHUoq0yf3CX37oiZn/SlhlvVuO +Isg7a+B/mhgH0KudlZioMHu/ZQRtWunHtJE8Mld2qkWGbu1YOx8SClqoayn6vHZk +3pwoYlVI5ODLq81yWZtmybJFMbok1J+73j2svY+tBUIyh64G/jFofnVYFMqSosUo +eOSqbxiMNJvCSXPZwblXi2aTO9CZ7pob6TxlCHDaHSJYiZxzXERpdFPxMiw7UrLL +woGhHQSyeDBd5X85RmW69F8rj6bQQ7S+4KPB3JjCY9bYLcFlTDn0eSYNcMo6RocC +AwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQAzuMkM+Z3Z+N/HohN0yLPGEyd/vkKX +g3tmuNCc6np+Z47KS9GmtXFFjNCzoEOmGIOQBiqTjfyglIypv4rO1mNMEk0TdZb/ +xmRYlJ0A0f2ANDgVB4TN0kz4X0O+6gGBRinPsZSjPdfuVdLwnkqOKyJ8ip3mgbu8 +OEPS1YC8cveT7G9d7Eic01j4grlmy4VpUnpImHDdTPKyWZ7n/DUGkbMQn9AdSZR4 +Pv+JVb05UaUC2QJLwGjnTWSvmLaEvQmDaPKOWrtRbwOOh4eC5WmHxaEEVrlwCpx+ +w8iCb9DiZJD01QlM/BnwBtgL+bVhaEQGkeY0jfUu7yW6i99af1hyERad +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/www.baidu.com.key b/cert/tmpCert/www.baidu.com.key new file mode 100644 index 0000000..fe7d339 --- /dev/null +++ b/cert/tmpCert/www.baidu.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA1HksxAFsFH2f7l6vtpeqsQTlGVxZGIrbvdrq1ML96E2dQc88 +nX6yguUdxcjRXMdSirTJ/cJffuiJmf9KWGW9W44iyDtr4H+aGAfQq52VmKgwe79l +BG1a6ce0kTwyV3aqRYZu7Vg7HxIKWqhrKfq8dmTenChiVUjk4MurzXJZm2bJskUx +uiTUn7vePay9j60FQjKHrgb+MWh+dVgUypKixSh45KpvGIw0m8JJc9nBuVeLZpM7 +0JnumhvpPGUIcNodIliJnHNcRGl0U/EyLDtSssvCgaEdBLJ4MF3lfzlGZbr0XyuP +ptBDtL7go8HcmMJj1tgtwWVMOfR5Jg1wyjpGhwIDAQABAoIBAEFiqOwIpAIKRtVM +PjaqpdSj9PzA9ooe8VCTtgCToR+EAwjlhXnSK40shOUAz60Fidk1mZOF5W1gkjfZ +4D8j0AoEy59i6efEXN9YSFcHv6mi2Ii8dZHPNVMMKf0n0TYpRmzu2eQgatE89ALC +IXhhuO2WTQsxQlGMhSLIiq5GqlyvzXNVHW7WRMrHFA1L2rL6YwhLZ0NYjc+G39+f +I2MB4v4sRfAgz3s218MRj+ivwWxMeWcajc5pAtTngPzCG4WpWxlX7Ff9FCwkZyAP +Cst7c+fosVNNImMJILOt+unXFnTTeGpIu9hVKWR1WyWEnxEVwocialkJUT/sc3Lo +imVXlgECgYEA8PGVd3szTGtI1rYwpTFuxLEdEdjYNfAVzDpCPjgUtAbtTHXDZ0rB +oqbrgdHsI1meDRN2suT3ZtaL3NY2fhQH0A5tScXPtyAneLmB+NnNc28Tw8KkAu0Y +2KGF+fqiaa2ZK4n+wwyYXO0NrH25GP7nHgFYiESOBcPhCBCTt2pSK6cCgYEA4cAl +aSlEWSzivvgaADb7QaZTtta1UT21nFDUM1vk7TgYzGpZRpxB857P1joMxE0RDl/b +LYQSa1tyhmeQbaCxy+AxcpzxRpX7q7sN59loS3iQ/EIa/HA0vVoOQ/e33HdsDOXQ +akqXvW4Kxe7/qw5FCfXuUFjyw/Uj83p20D/k6iECgYB4CUNXlS9HYSOWpImzot72 +au56l7ePl56kclnSOYpG7jSGpRzGdv3lFJe7w2OLcPhGt22pTlzbBQQE70uSoFQM +GUPlPwFu0DwZ7wGLgqbSXYJRQsUHGCwKsN3YXj9PusbWZBdiAQJfOVJYnwH6K/Pk +hPMgYFcJFD8mD2woMnXhfQKBgQCWIlR/AJvc9pYBzTx1ghtNSNGJ2ncRhYm/YJ4P +XgD8pn8Pi3a+F/NgkvDEFy0ga+R4+9TnC1u4nEOpET0jO2ijHwGjqK5pdBvA1RDl +bVgIQTGjIk+SLQlWGIs+NoPHkoCAf2JBHkSWDZYKluzflQjjG/SW6ODi46g6J+rW +ineyIQKBgFjgcl3Xlo0ttHwe7Smmc28H1TWKeWg2ww94voe7R/4y44JFRnwxggb3 +fxMn6PByosBP7tjRd49vHiUWmvCJ8SuMmh6XdEV72G9MJpFh8vKh7jvlR8oVYk7b +lFZ2AKY82L/dRIfCWNPUBM2ixc5Tc3RIA8tRBT0pVcdQZs5+BdcE +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/www.google-analytics.com.crt b/cert/tmpCert/www.google-analytics.com.crt new file mode 100644 index 0000000..116de07 --- /dev/null +++ b/cert/tmpCert/www.google-analytics.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUzCCAjsCCQCX01C4JsnjpzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA3MjUwOVoXDTE1MDgwODA3MjUwOVow +gYsxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEhMB8GA1UEAwwYd3d3 +Lmdvb2dsZS1hbmFseXRpY3MuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqXte5gBiy5Il3IBbXJE558It +Mkh90uO7RKxlNMHT02fG4xFZicGCYk47RgTsmDfNtlwrsnBmPRIWE4DvlxS0hVah +Gd+/AYewE7qJLk8kw5k+c2+YjF8Okd+KId25j6497VrJWct+QWSZ8KAInJj+rp4t +5Pf9uK0+rqfOkYedtrKdP/2KwuHmbvxYzQIMKMZWUM3kb0Uf3wx20FuOLY+2/syc +y7pdBq272lzGyGpnKJAP1kIXQsdxmpDTN99Cdda7Vff1y4R8y9cdYm1MXBWswf3n +aB1tR0qBtnPeDzG9KMjBBY2EARn3FYqacF9NBaLiJcCvpJ3/4wBq8sRffCgeiQID +AQABMA0GCSqGSIb3DQEBBQUAA4IBAQA2I6royKHbYGn+izook83h1NCJzo0dIuq3 +1peCd81Z2HQ5URdrQGrIWr/xy3djcl+iFsRiuf8lMS7/0tugFo94WEON8wg/4Tsp +8TDBjGXEivL3RaWL/KNikXeMbedrurJLb6e7IC8OMX9H14D+qnqqwV78HYhhcZ/A +AGk62hNAPww8o3OIv56Gg5Sq17ksXDv2kcYG7NDQ3wD5m1AE2S/N2BNis8Z6cuqc +KB6jCsrpD3NzQs6Y/9FHKh3dLPuCjkum/Lf0pmO7uFYz0e82SeK/wOPzJtJ9lIw0 +YRhUfhs1iBJPnFP7WScbVyPzrSqTR5yD1WiEprL2iVQ1b8rrVFp0 +-----END CERTIFICATE----- diff --git a/cert/tmpCert/www.google-analytics.com.csr b/cert/tmpCert/www.google-analytics.com.csr new file mode 100644 index 0000000..b656af5 --- /dev/null +++ b/cert/tmpCert/www.google-analytics.com.csr @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIC0TCCAbkCAQAwgYsxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEh +MB8GA1UEAwwYd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tMRYwFAYJKoZIhvcNAQkB +FgdhQGIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqXte5gBi +y5Il3IBbXJE558ItMkh90uO7RKxlNMHT02fG4xFZicGCYk47RgTsmDfNtlwrsnBm +PRIWE4DvlxS0hVahGd+/AYewE7qJLk8kw5k+c2+YjF8Okd+KId25j6497VrJWct+ +QWSZ8KAInJj+rp4t5Pf9uK0+rqfOkYedtrKdP/2KwuHmbvxYzQIMKMZWUM3kb0Uf +3wx20FuOLY+2/sycy7pdBq272lzGyGpnKJAP1kIXQsdxmpDTN99Cdda7Vff1y4R8 +y9cdYm1MXBWswf3naB1tR0qBtnPeDzG9KMjBBY2EARn3FYqacF9NBaLiJcCvpJ3/ +4wBq8sRffCgeiQIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAHKIpDEPskT2ntah +MgrAPN1zPHVupEIv+EF2xyKysk2TYmO95RveJh3+1lJ+RUyzWkgzQY05D7UrQrj6 +lKUV0e9UFoNVm1FIHGRCU+c2TalmXISNPcTjE9CRee4jH2yM3MXBPHUxGu24x2NC +uZo4+n1MhrOsdEDzKR9wFhqmGWyoQi/6gKVMDJJ2dGzOatsH/wzZLtMSW7knunkh +M5tzOqUglApyIsgtm/ewrMPsAdX3/fpDZhva1bkZPic0qyaSckq/Ji/8E8laxvZr +ULMrwu/K8ICr7msdW2igIi5UQzQMLOEZwu6Zc8ng+sy7MmKBo5Y8uFCCeZvYLQuE +78MwpK0= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/www.google-analytics.com.key b/cert/tmpCert/www.google-analytics.com.key new file mode 100644 index 0000000..4a14680 --- /dev/null +++ b/cert/tmpCert/www.google-analytics.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAqXte5gBiy5Il3IBbXJE558ItMkh90uO7RKxlNMHT02fG4xFZ +icGCYk47RgTsmDfNtlwrsnBmPRIWE4DvlxS0hVahGd+/AYewE7qJLk8kw5k+c2+Y +jF8Okd+KId25j6497VrJWct+QWSZ8KAInJj+rp4t5Pf9uK0+rqfOkYedtrKdP/2K +wuHmbvxYzQIMKMZWUM3kb0Uf3wx20FuOLY+2/sycy7pdBq272lzGyGpnKJAP1kIX +QsdxmpDTN99Cdda7Vff1y4R8y9cdYm1MXBWswf3naB1tR0qBtnPeDzG9KMjBBY2E +ARn3FYqacF9NBaLiJcCvpJ3/4wBq8sRffCgeiQIDAQABAoIBAGViK66i5HaqgoOZ +NQ32whDlk2vU+Y/CMzAtgI1CtZhtKAiFRG6nl3t/GO4V3AJiv2grUuh3XHGD9DjO +lIRoGmT5IX383qHnrWjf2Vged/uaHEWpqDOwWWLhuhvwKyTMMrdd670PggNUTtIm +qYAj9ZY3gXTK9LgYyrpoH6Xm3m1/Cez1jE83+55IQFYmyDMjpg4ZwpkXfxZ4jlJK +xvR9Js2KXgWCSDWScre6M8DwmdP/eO7IwWo4x/2V4l812VLxt4Jz5dcba1+C8oi/ +/okm6GQDozAG3KiXnv3B3LrOruJso7UpIZbPPMp2r3OW+nys8u0U4sKb6z27luWE +lVOzQJECgYEA3XmhRCHv7DYHU9PEsvbQ4/nXUs12tgaw3wXIW1uFf9LWBXjeu561 +1lZN7HieqiYfX1qx0GX9CKk0t0e3k98qdFnns/uejVeyotEjGabZAas8ZH60v/Bd +CF90al75BcA/x7/YeHOCJJ8LYjbdE91mxs55cqEIZiFaT6AhDksE44MCgYEAw+bb +XdFr8DQtk+lWpKSFaT0UZKKaMucDaEl1LcINzG3AV9p4SSX48H+B1eB/RIPa8EdQ +IBTNomQQzlruZdb8cvFvxnRx0RVWsZqZHFDZZy863n1qlFID6eGIGCkHhZc21tWs +icpXn08p+m++XRL6Gs4mkELUOUkJC1s8GWyifAMCgYAy/5X97V6k4tAPIn1xxFnX +lSla/MrwIVxLDrbTKqD0DSWRPwLy6xnuEBODd0b54StqNqUpWsLIYsYrygzgtQu+ +nRE4paEd5OrSiRvvBTeFJdwTPAX9CKkzi19wOwxWoa1OHsQHAHogWqsxY3bG4z2O +W+8lUSVw9w8ntLTH6MhoZwKBgG+Ufj3hmmkmTw+ASCley941O/hV5R45Fme/704w +yUs29+cSOJDxX+kbtwfq5pJPx9Qzyh97ueRUun3OrRq0aPXPLqsKiAle7hIazDqk +ki+DZzRymtIAJNqB6tJYDEC68DFNYwjYhy/mFzLdkr/Qn0PFR5HDfr1iLBSb0o9o +oOOhAoGBAMVf/XhCaYPfWacN9TM5/rK14+AAQkvbTMT7JunsurIbV3ZDLYwWEaav +iazwkJ1YbZRUm2miT+fsYBsCcxPxc15qyAWELutyZ5Kn8lu4LGax5n2Jygd2iu3F +i4ybB6KoBoAnrXH4lXwH79alxdq5o8QawywiTnZsAVEmGdA52x6W +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/www.google.com.hk.crt b/cert/tmpCert/www.google.com.hk.crt new file mode 100644 index 0000000..9579bf6 --- /dev/null +++ b/cert/tmpCert/www.google.com.hk.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTDCCAjQCCQCX01C4JsnjlTANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2MjIzNFoXDTE1MDgwODA2MjIzNFow +gYQxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEaMBgGA1UEAwwRd3d3 +Lmdvb2dsZS5jb20uaGsxFjAUBgkqhkiG9w0BCQEWB2FAYi5jb20wggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDU70yiVJCcBsQvQgEufpmPZ/kTAUxlphi+ +w8ymiXFJ9mjAJFmzJeq5tkTxrfwfZIYlGqPfOfTYDHk2Kje03NZyQAad/Y1ZOEbF +UijzRSYEiQ7U7jvagN0SkjqeqvApefm+g4ZrYvKTENGqIZWfPPph7A+oPGlJvhJ4 +lCgW2PaLCpgedMQ0TaAvSsmwwcOtd61gMSmiW9VuZR9u5TSFL4nRbW5IbKIETyhh +3HIpGb9r+jH9t9KPGZDN0wPCTWYTEOU8YP7dzlIEz2VQR7CC8ZEnLqpdq19Y66eg +WPrUW+rcJ0odVmxwgHDrJLvhA9fHIQDeHhJ5p9XrXLU5C6RrRQTHAgMBAAEwDQYJ +KoZIhvcNAQEFBQADggEBAAGQHxdwXCRJXCKi3v0NUZSLdmNGR3d7OJ2HOHStSVBY +LEOmWHbXqWNsyqMSFyPKzB1XzfSzmi8cgbZKdX/7Fu5ivBDx0o5eIr0M35RrqeaX +Yq2yxzU6avTy8q1L/VR30fgFn8YRA9OIzx+/jNihMaVX1vgO1fVMpep5QxzTYaRr +P5rsBdQlVtvZKiqO7XK3spBvZz4q2nEwv4Y2eRSEXZo2677DTzmSd46zI7Le2mxV +PmmhV2yQHBtR78UENHlvoJf/9zNFYFpKqBT2saSzNeAi2ri88+pkdwJj6zC4oYZa +lfeMY40Lnd8wY+DFt6ir8v0YOCAELz4/TQJmk+YkZIk= +-----END CERTIFICATE----- diff --git a/cert/tmpCert/www.google.com.hk.csr b/cert/tmpCert/www.google.com.hk.csr new file mode 100644 index 0000000..129f38c --- /dev/null +++ b/cert/tmpCert/www.google.com.hk.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyjCCAbICAQAwgYQxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEa +MBgGA1UEAwwRd3d3Lmdvb2dsZS5jb20uaGsxFjAUBgkqhkiG9w0BCQEWB2FAYi5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDU70yiVJCcBsQvQgEu +fpmPZ/kTAUxlphi+w8ymiXFJ9mjAJFmzJeq5tkTxrfwfZIYlGqPfOfTYDHk2Kje0 +3NZyQAad/Y1ZOEbFUijzRSYEiQ7U7jvagN0SkjqeqvApefm+g4ZrYvKTENGqIZWf +PPph7A+oPGlJvhJ4lCgW2PaLCpgedMQ0TaAvSsmwwcOtd61gMSmiW9VuZR9u5TSF +L4nRbW5IbKIETyhh3HIpGb9r+jH9t9KPGZDN0wPCTWYTEOU8YP7dzlIEz2VQR7CC +8ZEnLqpdq19Y66egWPrUW+rcJ0odVmxwgHDrJLvhA9fHIQDeHhJ5p9XrXLU5C6Rr +RQTHAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAyElyHMPcolRGcMlUw7CeHsH6 +7mQXGpL33EX0PfoGnjozn/vu95n67OUkPc0cRHCH1rbkIQ6YIZsD0xhefw9CoB/e +naKjPcJfbDDPYoXgCiSWhHg1KEmo8dySx8w91oKohoG/+Iua4wXtfeQXLsjGv97+ +zTABFZO7DaeUj5QqoymS+aw75FXjZdEnevtZvtwfLRl/Nf4chu0CjCvtpJGK9RC9 +oNvhC1obDK681h9hABy/Qm3fuFsr9vhZ3pG0cjz0k74wrYEx1kRkcfKbGNs+zOMA +dpCPaTUMPHHt+sJP6U+5laY0NdgWy4x3BweBGWz6HQWEfQVWYqaOy4Vsa08ftg== +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/www.google.com.hk.key b/cert/tmpCert/www.google.com.hk.key new file mode 100644 index 0000000..496cdb6 --- /dev/null +++ b/cert/tmpCert/www.google.com.hk.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA1O9MolSQnAbEL0IBLn6Zj2f5EwFMZaYYvsPMpolxSfZowCRZ +syXqubZE8a38H2SGJRqj3zn02Ax5Nio3tNzWckAGnf2NWThGxVIo80UmBIkO1O47 +2oDdEpI6nqrwKXn5voOGa2LykxDRqiGVnzz6YewPqDxpSb4SeJQoFtj2iwqYHnTE +NE2gL0rJsMHDrXetYDEpolvVbmUfbuU0hS+J0W1uSGyiBE8oYdxyKRm/a/ox/bfS +jxmQzdMDwk1mExDlPGD+3c5SBM9lUEewgvGRJy6qXatfWOunoFj61Fvq3CdKHVZs +cIBw6yS74QPXxyEA3h4SeafV61y1OQuka0UExwIDAQABAoIBAFScynzu0Y/OeIK2 +3bVWBTsg+657o5n4yHh1YYsDrorPaYyAZUx00rL9JKRMmJT44v03esqnQw3e1wOY +/w3VezlnC7oYGOTNIgIixbb1UUgYFlayXAJVloNcrAKEtm4k1ALKTM27Qd0Cn+3U +7pmaJ3xly0r0xnnRF5HmfY+mo0FYOHVcHzRtElWnqVz/tnf0XKrhTOsVEE4TPxoR +OUZlilA7orzkPJ8izXpwVzmBtqeDdfnrzC5aFr4dVOdvRqkY/gAl4tjQ+4wD0rFx +cwCC5wZv3RjLpbnqa+hG3IQV9wB3yGNUldRfcelTlaolcJzwYnppEXhMM/RlN1Rp +RGhs1oECgYEA+Gsm53XinZQwMin9n4/Ltr0Lk71mcOCqk3ia8bxriY4GPVsoJKBs +6ChsDLvW1Xq3hb/uaJo+KHf+fWkp2DHxpNYHZ3/D57MpQzC9awvj/2JUKI8Glivm +l8GRRJgkaZ/ChUXSGRXwA4p394dtDa4nTG5mT03DzNSB/UT0wM3PFycCgYEA227r +R1uK2lBz619G97S8N3InLhU5sxYZQnpJrXJKX7etEyfTpJ5/XzeDm5zeuNuN1xFv +TwAZqWjhaX+m8dl/SFTaasUzhZ4dcjo83QdSs1D8Nbbi7X5Bdf/6rxHI3T42326A +FlFo0/+Ec//8K+KpxVEmbstrb2qi2JLw1oEoKWECgYEA7uKrwL0eNQaB6lty53Py +JEJa1bG2xyllHvdFmNzmVJrc6Te1vLMAx6fHb99aUmP2A4p0Cub4ixYJBjSQ5rPw +eeDPsfmtPCyPq2s9W6lNkRLPd0lCvjptPtYHifz8Vw4oktx3k2QDMISBpOj4N8WX +SOqJPA2+EkTw08rxyk6frNUCgYAb3gtNRaftr9f45WG65Z4doIavSIzKXJ0anzMq +LuCZJVd6nk03k9VzPzaclaCHc4Kg9JrhOo8Hv8UYw9hs0IVkpzoR4zd22ay9q/28 +yEhNc5SEMdTB+o3PsZGhmC2dQ2BuobbsnqwkeEfW/4SEAkYzQ+oQmg7r2GwT+x1Q +8JgsIQKBgQDwXaP4W+DGc0cWHCeC9mwbDHFqJO0d8HJmkrM66cEMs5jZWfNKp0Br +LEqSL4CopODr0vv0cMCF+cSvtbom16CEQLNoi4H2uEF09VJJyJpGEuBSkHs58lIT +Pp08H05ot0VKJOpzFF6jDdj7OcTPq0ljCs7J30Rap14j4Ixl1fNnUw== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/www.googleapis.com.crt b/cert/tmpCert/www.googleapis.com.crt new file mode 100644 index 0000000..9fe4cfa --- /dev/null +++ b/cert/tmpCert/www.googleapis.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTTCCAjUCCQCX01C4JsnjmDANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2NDIwM1oXDTE1MDgwODA2NDIwM1ow +gYUxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEbMBkGA1UEAwwSd3d3 +Lmdvb2dsZWFwaXMuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0xZdTr7+7RbXN1KVbli700SJcqbxqzcG +W8jvreSJHiZgfyJdFfcWFCwggKO5Z7QLwU94SlrXzH8L8JJXvb6QtmyRe7WJVnC6 +UgKe32d08a+QuQb9LyoMN3wYdckzIVgm9fuVoJJ8esbD/mFqnbVoh+qT0yk+uvUb +tUR+7VkpRFqqCCA3l8hafXKDhOmuBpARnJIzXS01k59gsXKEEu5sGx+DZhvmPRFw +GoLWpifNbjx9N7cGAN1v3Ih+nGcv+qhkm3h0YBSITIJSh+AceLMb6Ol/y4OHg7XA +6GO0AtA/E0tflGK/hEyGlbnB9G4vkwQupPPgWoY17dAryMu8wKI2/QIDAQABMA0G +CSqGSIb3DQEBBQUAA4IBAQB/MIBFf0XEXE6b83BJeLncVNZq0AqOkJ+lHXbnr/mQ +gWg7g+14K6yndsrDhRm322tz3r08DLDjKp4pzmrEKYnh4PPgvud4Ni4+THTV7hqM +TUb/0eijzRcwyrNXT53CPhjvqTDUByQm8QH2bwlUHdSTkEb+g9LNEdN+kjDOEg6r +jddHwAifidNifYhGoyZvjeY6eBlpzJbFeViLRPadUuucM8TLDtWm0TQHKCn/WcTi +CiDTriLE3rhQ+s1NukThK90Pf5nMXW0ui0ILssskhn5TzMM0v+7PzlTdycGv6e9i +KxrWK9rGwW61ToCfrntoBKTJXzPMwm3Xlmvv64ZVW4LO +-----END CERTIFICATE----- diff --git a/cert/tmpCert/www.googleapis.com.csr b/cert/tmpCert/www.googleapis.com.csr new file mode 100644 index 0000000..f7bb606 --- /dev/null +++ b/cert/tmpCert/www.googleapis.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyzCCAbMCAQAwgYUxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEb +MBkGA1UEAwwSd3d3Lmdvb2dsZWFwaXMuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIu +Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0xZdTr7+7RbXN1KV +bli700SJcqbxqzcGW8jvreSJHiZgfyJdFfcWFCwggKO5Z7QLwU94SlrXzH8L8JJX +vb6QtmyRe7WJVnC6UgKe32d08a+QuQb9LyoMN3wYdckzIVgm9fuVoJJ8esbD/mFq +nbVoh+qT0yk+uvUbtUR+7VkpRFqqCCA3l8hafXKDhOmuBpARnJIzXS01k59gsXKE +Eu5sGx+DZhvmPRFwGoLWpifNbjx9N7cGAN1v3Ih+nGcv+qhkm3h0YBSITIJSh+Ac +eLMb6Ol/y4OHg7XA6GO0AtA/E0tflGK/hEyGlbnB9G4vkwQupPPgWoY17dAryMu8 +wKI2/QIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAEwqkteSyzkay48ZVBogQq+1 +izXqM82yLYrQ33cGLfaqzOxe9iODQgJsjEx/wXTu1g55Oh8Y6POy55jnRrS4SR9w +/03OG5CwC9RgOv8+UsPhcPC4A0p+ngBaraJKTXzuFJpH9ierFRfIIovtl6XWYeBa +nd34i8P9v4cWL6mvBUGoEug68FaiP2HX+bS3UoA0Th4kydkIyP35IFtvS/2dJ0FZ +HcsMzG+UpyYizLGFMOtQGHPr9GTn37vef9S/6shiONaPHXGjH+VkfdTSYPfIw1EL +UMZV8U1RoPmFZ3yOtyv2iZxWdiMGneWgqnDdomcjfMOoBhsyHs15t9W/D8abiF8= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/www.googleapis.com.key b/cert/tmpCert/www.googleapis.com.key new file mode 100644 index 0000000..fdd5924 --- /dev/null +++ b/cert/tmpCert/www.googleapis.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA0xZdTr7+7RbXN1KVbli700SJcqbxqzcGW8jvreSJHiZgfyJd +FfcWFCwggKO5Z7QLwU94SlrXzH8L8JJXvb6QtmyRe7WJVnC6UgKe32d08a+QuQb9 +LyoMN3wYdckzIVgm9fuVoJJ8esbD/mFqnbVoh+qT0yk+uvUbtUR+7VkpRFqqCCA3 +l8hafXKDhOmuBpARnJIzXS01k59gsXKEEu5sGx+DZhvmPRFwGoLWpifNbjx9N7cG +AN1v3Ih+nGcv+qhkm3h0YBSITIJSh+AceLMb6Ol/y4OHg7XA6GO0AtA/E0tflGK/ +hEyGlbnB9G4vkwQupPPgWoY17dAryMu8wKI2/QIDAQABAoIBACO/pt++Mvg+JQam +gs4kUvLtqYV0Rntjnz0OI6FEkgA8KZ1+WVtt9BxIeNywXab1dAQyDEIzblagsYn1 +jsyAqItsiZr03KR6BOP8s6FMKR8BR7Y+O8SwD0+aQZ45C+K6xiZkjCucg15bqTe8 +kczRuzlBffWGB6yr9BxX1FMoBXggv9qKmy8QA1YAoajTNx0r/mKVn5w8zY7gCqyU +hvv7o1sbwPtTvULMcUyez/U87GGWtPNwxDdeRZ7uR1cj39/ql3CYag1g+meUbVnv +AbRh5JKNf8BrZ368pgr81FlJv0Jl9OqkUmmKt3qWpLxpNTYPP4kD4h8qIoq5Kvi2 +HuvPApUCgYEA8l5glpHEB9Dhh7jDWPWhIwx/qTq5/ozwCj0azi9rzrGpHn+Dx8Jw +sLSw4+OtofavWj/EqYKjQVPua49HI30YASyeEMJXzYGNHIMeXTi9LYlNQfbGYTNB +BNAoer4pn0gOcoUd4oVVMvtHQmlgzTC4qd4v0gcHHJDPZiKURRp+X4MCgYEA3vWZ +ZLFXGDQe9RMxeWKDIrkJMZc4JluBMdvatR2koM7yUjFsiRLdXE71wU6N9+17OcDl +kWyp1yKWSRVO8JwLngOgaVdRkvJJrVlrswoW/ApzwVPHL1pBX65Xm/ApOr3+XbgT +x4aEWKuskZoXkJPIPcC2j0hCAZwGD585zjDmx38CgYEArICZtHEZGgsEiinp98YT +ozOBJTykJtW+/zqQepHr5Fg0q31MmP/+XvasM/bXnUBLfCuI2LEfax7Gwg1fL5YY +YLWV5w27mowLmHCGSwlYNDHWKA3xEjt9mmRhe0MfsruBdObj51bI1hlclZsVB9YW +iOiYFp9j42P6CZKw/yIlMesCgYAICfz053wHcGGpXn7LLKUjzF4rfpNUtrnqzU2O +eDomXi/YjNWn/5khqesshCOUS+jEhVMBslRRYHrgubb17/pvQRw4kCBt1vSXHoFG +nFeF0O6pitbEu1FeHNAl3DvwVUdlo6x65jvBYrc/LLoqyVlP+LHcarOOkUyapZgU ++ihoCwKBgQCus2ZO6qpUqgVv4P317RZ9XE9eppeqHM/aEasFk16HGHqqD1+9QrU3 +VYHKdxuKzprtVVyc4LC2ZvdupyFKmP30jbCns5ymkslXOPvOPOHZIHLt4T0IoCKZ +k8sZI0eXhfEohf5Ln4HBS0WbM9+JAypH1pNjiXfim9FpPOsq39+khw== +-----END RSA PRIVATE KEY----- diff --git a/cert/tmpCert/ynuf.alipay.com.crt b/cert/tmpCert/ynuf.alipay.com.crt new file mode 100644 index 0000000..296d40b --- /dev/null +++ b/cert/tmpCert/ynuf.alipay.com.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSjCCAjICCQCX01C4JsnjmzANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJa +SDERMA8GA1UECAwIU2hhbmdoYWkxETAPBgNVBAcMCFNoYW5naGFpMQowCAYDVQQK +DAFhMQowCAYDVQQDDAFhMB4XDTE0MDgwODA2NDIwNFoXDTE1MDgwODA2NDIwNFow +gYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hh +bmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEYMBYGA1UEAwwPeW51 +Zi5hbGlwYXkuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29tMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnTqTxvWolp8TOhIPskouiUEy8jhX1we1Mrio +s27eoVIaW2USfvlof7VbMck3mC3eWPYEM9jWef2p571PgeVDPrt0Pl3hJsZC1Sju +62Lwa44Qpp4h4RrBMb/Yl3z5/gd8dJaZ3xu/13BVLOkJmt69yiRPKNjD0mJvIXh4 +VY/xmWwz2KlOfd+plcW7iOuNt0Was43l/phl/zw2GYdjm3Oz3Mg/46/hh9qqPW6D +z2OdTtaQbTf2/GHH1n2nSCmv/I3T7lfMDNNjinxHPjcgpJFMFkl3LpZ8DwX4ywLF +e2P90WVXZt7zqPuFWFKbwOq23uP92Xi9i47JmQNURKyPUC/w1wIDAQABMA0GCSqG +SIb3DQEBBQUAA4IBAQCq6oeygjflArTh+WVkfXBZh9mEYbPoCMHh/A1A/FggWHnC +7vCUimb5FD1beCGlxY+Q3nvlAO1oyLtBNe3XY2ivziF+vdhK4M/HlMNkfBvroESe +N2dMVmLJDNUSDnMZtL3FbCglL8CimyXzp/HW4GJGRClYkL3dbNoKSe8nyaxxmciT +NKjOyobO+I7z74Vq14Kwd0Vil1JkFIfFLlOxCzaSUtv4LN375vm+5sWjmbu2BlBq +leUp6RoE+JgUnJ5iMoMjhkZ8sqbaMC5dm8YKPk2bdl7cAIP1ZJuWXK4lQxp65mye +lQrsQYu1D/XxWNd/wfeNkjt5FfTvROcKPr2v9ats +-----END CERTIFICATE----- diff --git a/cert/tmpCert/ynuf.alipay.com.csr b/cert/tmpCert/ynuf.alipay.com.csr new file mode 100644 index 0000000..9b8502c --- /dev/null +++ b/cert/tmpCert/ynuf.alipay.com.csr @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAlpIMREwDwYDVQQIDAhTaGFuZ2hhaTER +MA8GA1UEBwwIU2hhbmdoYWkxDjAMBgNVBAoMBWEuY29tMQswCQYDVQQLDAJJVDEY +MBYGA1UEAwwPeW51Zi5hbGlwYXkuY29tMRYwFAYJKoZIhvcNAQkBFgdhQGIuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnTqTxvWolp8TOhIPskou +iUEy8jhX1we1Mrios27eoVIaW2USfvlof7VbMck3mC3eWPYEM9jWef2p571PgeVD +Prt0Pl3hJsZC1Sju62Lwa44Qpp4h4RrBMb/Yl3z5/gd8dJaZ3xu/13BVLOkJmt69 +yiRPKNjD0mJvIXh4VY/xmWwz2KlOfd+plcW7iOuNt0Was43l/phl/zw2GYdjm3Oz +3Mg/46/hh9qqPW6Dz2OdTtaQbTf2/GHH1n2nSCmv/I3T7lfMDNNjinxHPjcgpJFM +Fkl3LpZ8DwX4ywLFe2P90WVXZt7zqPuFWFKbwOq23uP92Xi9i47JmQNURKyPUC/w +1wIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBADlxaQSdBB+7uJPxlXSi0kO/QH4/ +SyCvEvQIDG3P0mZTp6rSgdDBc6QMz//tLNe7JqUICAJHQ7hQn5oA+iC6NL7S2Y0w +PpoqJXew++tLs9D9FVwsaLeGgHxHcqc0koXVok1qfpxQkVmhyjwxUElFuM+Gp0cH +PDVHBhdWv9sDqvpdTVIpe0PLSYe2+th5gWCFnF/P7e5p0BFrstiRa83rIfFATxyJ +fSDt3fx7C/0Mfh74RonZ/GpJQxOJyS4kz9WeDK+7V+GX9Pdng3DDFTJ3+/KrzKzy +s1/m/T3Y0wXC2bXg8/ttLC1YHMBocJBSP028Eiwl0h0vqFy07Nrx9As4Njs= +-----END CERTIFICATE REQUEST----- diff --git a/cert/tmpCert/ynuf.alipay.com.key b/cert/tmpCert/ynuf.alipay.com.key new file mode 100644 index 0000000..b323f4e --- /dev/null +++ b/cert/tmpCert/ynuf.alipay.com.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAnTqTxvWolp8TOhIPskouiUEy8jhX1we1Mrios27eoVIaW2US +fvlof7VbMck3mC3eWPYEM9jWef2p571PgeVDPrt0Pl3hJsZC1Sju62Lwa44Qpp4h +4RrBMb/Yl3z5/gd8dJaZ3xu/13BVLOkJmt69yiRPKNjD0mJvIXh4VY/xmWwz2KlO +fd+plcW7iOuNt0Was43l/phl/zw2GYdjm3Oz3Mg/46/hh9qqPW6Dz2OdTtaQbTf2 +/GHH1n2nSCmv/I3T7lfMDNNjinxHPjcgpJFMFkl3LpZ8DwX4ywLFe2P90WVXZt7z +qPuFWFKbwOq23uP92Xi9i47JmQNURKyPUC/w1wIDAQABAoIBAGMs/ugiLuyLfPpF +SEdjCYWkbbliFu5ZO0+6MRe12JKTknKSB5+2PNdJkzONRBcm37jnvfDiVy9t9U1r +GYrLDaa1YXaxiwMFTkTc5A/wQczmONSQrLgsQy7ZX4r2104IdNWp5XdZLqJ7hg6l +FFzvIXIvgws16Bd95bGMJwN5n6DxJYFz2hYPE0iroLhHzu8HU4LWMvelp/RS5yuX +FkAyxyXPN+hKcdDLfkBi9rqq1+HVm+i3b1t7Lhdii7DLfxScnqBb3mGhugRGWZa6 +QHPu/bxoWdqMF4wXn/9i9Id7NXeo2flyME+sDmZP+43a7qzPQp0uk7uw3kGrADdx +9Se65QECgYEAzGvmz96IX5JmbDvIAiNtvViXWh1qTr2FkEJj5t/1P4YHrMoGS217 +jyldG8gjbuzKYQIz3nhM3Wh+G6kyRF0WSBkXK47D2o1AjMmlj45JH8GT7zpW8Uau +xqHk1qqAQxF4fHGXKNMYZ492caG1cF8wuBNsj8kJ7fcxuoGBbWderoECgYEAxOZh +1FYMo+OvT5MJ7LkwlYme49RLnSlbxFLxBIlZ+8aYqIFYOdrmjvNjRevVA1utr6xK +hl5m6OPwwCU0WE6l3btKImMr20PwdPkIDPCb5ofPi4P5k5AMQ4MyO6on5ie4FVjl +Kzz0yJ7Nk0skbY7K07OMffQhk7Atk0g0heenI1cCgYAaBSoOD49gSuxKnplo3EWd +smchi1j6yNj1cd3xh1RaT58ueVCvzTHLGULGxITuG6nvCy67BKkUDbbvomvJk+fA +KaFvY+6+JPiwcwJl8YCRUDyaWNy0PYEFu5m7UVyeLN0fSf4priUPGY3EDQdhVFyJ +Mb/B1Z8z8SEdUlq9KEk/AQKBgFn8K9N9q/MueA021r9P9yswJORcPl5J631ypmF7 +YBtXrKa9zhNKvjmwc7sdx1DskhkJ9VkpRYDDw2Ac4KpG7zjBgmTqy70+dGMQ+KPp +RmZ5xNku7F2K5H/qMofgALIHjvJ6mOlEx130bWEWY0SKkJllohxh+QJk7r8zrYVQ +1CqrAoGBALYYtMfLj3f3ErNsb55R1r5t991r1hZhKjPzAUpguXsrYqxe33+kJlFH +Uin9d9BRLC2UBKuUv6Vi3vyQfxRKfy5dyFP/ORNlQKE6P4YRsuKY5IK+OABxVgAB +ZD4vtAg8UXedsVq+0jywKNK4YLBK96qKvfm5i6yz9q39Y8IgfkN9 +-----END RSA PRIVATE KEY----- diff --git a/index.js b/index.js new file mode 100644 index 0000000..469eb7e --- /dev/null +++ b/index.js @@ -0,0 +1,58 @@ +var http = require('http'), + https = require('https'), + fs = require('fs'), + net = require('net'), + url = require('url'), + exec = require('child_process').exec, + serverMgr = require("./lib/serverMgr"); + +var serverMgrInstance = new serverMgr(); + +var httpProxyServer = http.createServer(function (req, res) { + var urlPattern = url.parse(req.url); + var options = { + hostname: urlPattern.host, + port: urlPattern.port || 80, + path: urlPattern.path, + method: req.method, + headers:req.headers + }; + + var directReq = http.request(options,function(directRes){ + res.writeHead(directRes.statusCode , directRes.headers); + directRes.pipe(res); + }); + + directReq.on("error",function(e){ + console.log("err with request :" + req.url); + res.end(); + }); + + directReq.end(); +}); + +//connect method for HTTPS over http +httpProxyServer.on('connect', function(req, socket, head){ + var hostname = req.url.split(":")[0]; + + //forward the https-request to local https server + serverMgrInstance.fetchPort(hostname,function(err,port){ + if(!err && port){ + try{ + var conn = net.connect(port, 'localhost', function(){ + socket.write('HTTP/' + req.httpVersion + ' 200 OK\r\n\r\n', 'UTF-8', function() { + conn.pipe(socket); + socket.pipe(conn); + }); + }); + }catch(e){ + console.log("err --");//TODO + } + + }else{ + console.log("err fetch HTTPS server for host:" + hostname); + } + }); +}); + +httpProxyServer.listen(8001); \ No newline at end of file diff --git a/lib/getPort.js b/lib/getPort.js new file mode 100644 index 0000000..c9b77ee --- /dev/null +++ b/lib/getPort.js @@ -0,0 +1,17 @@ +var portrange = 40000; + +module.exports = function(cb) { + var port = portrange; + ++portrange; + + var server = require("net").createServer(); + server.listen(port, function (err) { + server.once('close', function () { + cb(port); + }); + server.close(); + }); + server.on('error', function (err) { + getPort(cb); + }); +}; \ No newline at end of file diff --git a/lib/serverMgr.js b/lib/serverMgr.js new file mode 100644 index 0000000..7ba444e --- /dev/null +++ b/lib/serverMgr.js @@ -0,0 +1,106 @@ +//manage https servers +var getPort = require('./getPort'), + async = require("async"), + http = require('http'), + https = require('https'), + fs = require('fs'), + net = require('net'), + url = require('url'), + exec = require('child_process').exec; + +module.exports =function(){ + var self = this; + self.serverList = { + /* schema sample + "www.alipay.com":{ + port:123, + server : serverInstance + } + */ + }; + + //fetch a port for https server with hostname + this.fetchPort = function(hostname,userCB){ + var serverInfo = self.serverList[hostname], + port; + + //server exists + if(serverInfo){ + port = serverInfo.port; + userCB && userCB(null,port); + + //create server with corresponding CA + }else{ + var keyFile = "./cert/tmpCert/__hostname.key".replace(/__hostname/,hostname), + crtFile = "./cert/tmpCert/__hostname.crt".replace(/__hostname/,hostname); + + async.series([ + //find a clean port + function(callback){ + getPort(function(cleanPort){ + port = cleanPort; + callback(null,port); + }); + }, + + //create a cert for this hostname if not exists + function(callback){ + if(!fs.existsSync(keyFile) || !fs.existsSync(crtFile)){ + console.log("creating cert for :" + hostname); + + var cmd = "./gen-cer "+hostname; + exec(cmd,{cwd:"./cert/"},function(err,stdout,stderr){ + if(err){ + callback && callback(new Error("error when generating certificate"),null); + }else{ + console.log("certificate created for __HOST".replace(/__HOST/,hostname)); + callback(null); + } + }); + }else{ + callback(null); + } + + //create server + },function(callback){ + var server = createHttpsServer(port,keyFile,crtFile); + self.serverList[hostname] = { + port : port, + server : server + }; + console.log("https server @port __portNum for __HOST established".replace(/__portNum/,port).replace(/__HOST/,hostname)); + callback && callback(null,port); + } + ],function(err,result){ + userCB && userCB(err,result[result.length - 1]); + }); + } + }; +} + +function createHttpsServer(port,keyFile,crtFile){ + return https.createServer({ + key : fs.readFileSync(keyFile), + cert: fs.readFileSync(crtFile) + },function(req,userRes){ + var options = { + hostname: req.headers.host, + port: req.port || 443, + path: req.url, + method: req.method, + headers:req.headers + }; + + var proxyReq = https.request(options, function(res) { + userRes.writeHead(res.statusCode,res.headers); + res.pipe(userRes); + }); + + proxyReq.on("error",function(e){ + console.log("err with request :" + req.url); + userRes.end(); + }); + proxyReq.end(); + + }).listen(port); +} \ No newline at end of file diff --git a/node_modules/async/.travis.yml b/node_modules/async/.travis.yml new file mode 100644 index 0000000..6e5919d --- /dev/null +++ b/node_modules/async/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - "0.10" diff --git a/node_modules/async/LICENSE b/node_modules/async/LICENSE new file mode 100644 index 0000000..8f29698 --- /dev/null +++ b/node_modules/async/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2010-2014 Caolan McMahon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/async/README.md b/node_modules/async/README.md new file mode 100644 index 0000000..0bea531 --- /dev/null +++ b/node_modules/async/README.md @@ -0,0 +1,1646 @@ +# Async.js + +[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) + + +Async is a utility module which provides straight-forward, powerful functions +for working with asynchronous JavaScript. Although originally designed for +use with [Node.js](http://nodejs.org), it can also be used directly in the +browser. Also supports [component](https://github.com/component/component). + +Async provides around 20 functions that include the usual 'functional' +suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns +for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these +functions assume you follow the Node.js convention of providing a single +callback as the last argument of your `async` function. + + +## Quick Examples + +```javascript +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); + +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); + +async.parallel([ + function(){ ... }, + function(){ ... } +], callback); + +async.series([ + function(){ ... }, + function(){ ... } +]); +``` + +There are many more functions available so take a look at the docs below for a +full list. This module aims to be comprehensive, so if you feel anything is +missing please create a GitHub issue for it. + +## Common Pitfalls + +### Binding a context to an iterator + +This section is really about `bind`, not about `async`. If you are wondering how to +make `async` execute your iterators in a given context, or are confused as to why +a method of another library isn't working as an iterator, study this example: + +```js +// Here is a simple object with an (unnecessarily roundabout) squaring method +var AsyncSquaringLibrary = { + squareExponent: 2, + square: function(number, callback){ + var result = Math.pow(number, this.squareExponent); + setTimeout(function(){ + callback(null, result); + }, 200); + } +}; + +async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ + // result is [NaN, NaN, NaN] + // This fails because the `this.squareExponent` expression in the square + // function is not evaluated in the context of AsyncSquaringLibrary, and is + // therefore undefined. +}); + +async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ + // result is [1, 4, 9] + // With the help of bind we can attach a context to the iterator before + // passing it to async. Now the square function will be executed in its + // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` + // will be as expected. +}); +``` + +## Download + +The source is available for download from +[GitHub](http://github.com/caolan/async). +Alternatively, you can install using Node Package Manager (`npm`): + + npm install async + +__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed + +## In the Browser + +So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. + +Usage: + +```html + + +``` + +## Documentation + +### Collections + +* [`each`](#each) +* [`eachSeries`](#eachSeries) +* [`eachLimit`](#eachLimit) +* [`map`](#map) +* [`mapSeries`](#mapSeries) +* [`mapLimit`](#mapLimit) +* [`filter`](#filter) +* [`filterSeries`](#filterSeries) +* [`reject`](#reject) +* [`rejectSeries`](#rejectSeries) +* [`reduce`](#reduce) +* [`reduceRight`](#reduceRight) +* [`detect`](#detect) +* [`detectSeries`](#detectSeries) +* [`sortBy`](#sortBy) +* [`some`](#some) +* [`every`](#every) +* [`concat`](#concat) +* [`concatSeries`](#concatSeries) + +### Control Flow + +* [`series`](#seriestasks-callback) +* [`parallel`](#parallel) +* [`parallelLimit`](#parallellimittasks-limit-callback) +* [`whilst`](#whilst) +* [`doWhilst`](#doWhilst) +* [`until`](#until) +* [`doUntil`](#doUntil) +* [`forever`](#forever) +* [`waterfall`](#waterfall) +* [`compose`](#compose) +* [`seq`](#seq) +* [`applyEach`](#applyEach) +* [`applyEachSeries`](#applyEachSeries) +* [`queue`](#queue) +* [`priorityQueue`](#priorityQueue) +* [`cargo`](#cargo) +* [`auto`](#auto) +* [`retry`](#retry) +* [`iterator`](#iterator) +* [`apply`](#apply) +* [`nextTick`](#nextTick) +* [`times`](#times) +* [`timesSeries`](#timesSeries) + +### Utils + +* [`memoize`](#memoize) +* [`unmemoize`](#unmemoize) +* [`log`](#log) +* [`dir`](#dir) +* [`noConflict`](#noConflict) + + +## Collections + + + +### each(arr, iterator, callback) + +Applies the function `iterator` to each item in `arr`, in parallel. +The `iterator` is called with an item from the list, and a callback for when it +has finished. If the `iterator` passes an error to its `callback`, the main +`callback` (for the `each` function) is immediately called with the error. + +Note, that since this function applies `iterator` to each item in parallel, +there is no guarantee that the iterator functions will complete in order. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err)` which must be called once it has + completed. If no error has occured, the `callback` should be run without + arguments or with an explicit `null` argument. +* `callback(err)` - A callback which is called when all `iterator` functions + have finished, or an error occurs. + +__Examples__ + + +```js +// assuming openFiles is an array of file names and saveFile is a function +// to save the modified contents of that file: + +async.each(openFiles, saveFile, function(err){ + // if any of the saves produced an error, err would equal that error +}); +``` + +```js +// assuming openFiles is an array of file names + +async.each(openFiles, function( file, callback) { + + // Perform operation on file here. + console.log('Processing file ' + file); + + if( file.length > 32 ) { + console.log('This file name is too long'); + callback('File name too long'); + } else { + // Do work to process file here + console.log('File processed'); + callback(); + } +}, function(err){ + // if any of the file processing produced an error, err would equal that error + if( err ) { + // One of the iterations produced an error. + // All processing will now stop. + console.log('A file failed to process'); + } else { + console.log('All files have been processed successfully'); + } +}); +``` + +--------------------------------------- + + + +### eachSeries(arr, iterator, callback) + +The same as [`each`](#each), only `iterator` is applied to each item in `arr` in +series. The next `iterator` is only called once the current one has completed. +This means the `iterator` functions will complete in order. + + +--------------------------------------- + + + +### eachLimit(arr, limit, iterator, callback) + +The same as [`each`](#each), only no more than `limit` `iterator`s will be simultaneously +running at any time. + +Note that the items in `arr` are not processed in batches, so there is no guarantee that +the first `limit` `iterator` functions will complete before any others are started. + +__Arguments__ + +* `arr` - An array to iterate over. +* `limit` - The maximum number of `iterator`s to run at any time. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err)` which must be called once it has + completed. If no error has occured, the callback should be run without + arguments or with an explicit `null` argument. +* `callback(err)` - A callback which is called when all `iterator` functions + have finished, or an error occurs. + +__Example__ + +```js +// Assume documents is an array of JSON objects and requestApi is a +// function that interacts with a rate-limited REST api. + +async.eachLimit(documents, 20, requestApi, function(err){ + // if any of the saves produced an error, err would equal that error +}); +``` + +--------------------------------------- + + +### map(arr, iterator, callback) + +Produces a new array of values by mapping each value in `arr` through +the `iterator` function. The `iterator` is called with an item from `arr` and a +callback for when it has finished processing. Each of these callback takes 2 arguments: +an `error`, and the transformed item from `arr`. If `iterator` passes an error to this +callback, the main `callback` (for the `map` function) is immediately called with the error. + +Note, that since this function applies the `iterator` to each item in parallel, +there is no guarantee that the `iterator` functions will complete in order. +However, the results array will be in the same order as the original `arr`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, transformed)` which must be called once + it has completed with an error (which can be `null`) and a transformed item. +* `callback(err, results)` - A callback which is called when all `iterator` + functions have finished, or an error occurs. Results is an array of the + transformed items from the `arr`. + +__Example__ + +```js +async.map(['file1','file2','file3'], fs.stat, function(err, results){ + // results is now an array of stats for each file +}); +``` + +--------------------------------------- + + +### mapSeries(arr, iterator, callback) + +The same as [`map`](#map), only the `iterator` is applied to each item in `arr` in +series. The next `iterator` is only called once the current one has completed. +The results array will be in the same order as the original. + + +--------------------------------------- + + +### mapLimit(arr, limit, iterator, callback) + +The same as [`map`](#map), only no more than `limit` `iterator`s will be simultaneously +running at any time. + +Note that the items are not processed in batches, so there is no guarantee that +the first `limit` `iterator` functions will complete before any others are started. + +__Arguments__ + +* `arr` - An array to iterate over. +* `limit` - The maximum number of `iterator`s to run at any time. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, transformed)` which must be called once + it has completed with an error (which can be `null`) and a transformed item. +* `callback(err, results)` - A callback which is called when all `iterator` + calls have finished, or an error occurs. The result is an array of the + transformed items from the original `arr`. + +__Example__ + +```js +async.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){ + // results is now an array of stats for each file +}); +``` + +--------------------------------------- + + + +### filter(arr, iterator, callback) + +__Alias:__ `select` + +Returns a new array of all the values in `arr` which pass an async truth test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. This operation is +performed in parallel, but the results array will be in the same order as the +original. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The `iterator` is passed a `callback(truthValue)`, which must be called with a + boolean argument once it has completed. +* `callback(results)` - A callback which is called after all the `iterator` + functions have finished. + +__Example__ + +```js +async.filter(['file1','file2','file3'], fs.exists, function(results){ + // results now equals an array of the existing files +}); +``` + +--------------------------------------- + + + +### filterSeries(arr, iterator, callback) + +__Alias:__ `selectSeries` + +The same as [`filter`](#filter) only the `iterator` is applied to each item in `arr` in +series. The next `iterator` is only called once the current one has completed. +The results array will be in the same order as the original. + +--------------------------------------- + + +### reject(arr, iterator, callback) + +The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. + +--------------------------------------- + + +### rejectSeries(arr, iterator, callback) + +The same as [`reject`](#reject), only the `iterator` is applied to each item in `arr` +in series. + + +--------------------------------------- + + +### reduce(arr, memo, iterator, callback) + +__Aliases:__ `inject`, `foldl` + +Reduces `arr` into a single value using an async `iterator` to return +each successive step. `memo` is the initial state of the reduction. +This function only operates in series. + +For performance reasons, it may make sense to split a call to this function into +a parallel map, and then use the normal `Array.prototype.reduce` on the results. +This function is for situations where each step in the reduction needs to be async; +if you can get the data before reducing it, then it's probably a good idea to do so. + +__Arguments__ + +* `arr` - An array to iterate over. +* `memo` - The initial state of the reduction. +* `iterator(memo, item, callback)` - A function applied to each item in the + array to produce the next step in the reduction. The `iterator` is passed a + `callback(err, reduction)` which accepts an optional error as its first + argument, and the state of the reduction as the second. If an error is + passed to the callback, the reduction is stopped and the main `callback` is + immediately called with the error. +* `callback(err, result)` - A callback which is called after all the `iterator` + functions have finished. Result is the reduced value. + +__Example__ + +```js +async.reduce([1,2,3], 0, function(memo, item, callback){ + // pointless async: + process.nextTick(function(){ + callback(null, memo + item) + }); +}, function(err, result){ + // result is now equal to the last value of memo, which is 6 +}); +``` + +--------------------------------------- + + +### reduceRight(arr, memo, iterator, callback) + +__Alias:__ `foldr` + +Same as [`reduce`](#reduce), only operates on `arr` in reverse order. + + +--------------------------------------- + + +### detect(arr, iterator, callback) + +Returns the first value in `arr` that passes an async truth test. The +`iterator` is applied in parallel, meaning the first iterator to return `true` will +fire the detect `callback` with that result. That means the result might not be +the first item in the original `arr` (in terms of order) that passes the test. + +If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in `arr`. + The iterator is passed a `callback(truthValue)` which must be called with a + boolean argument once it has completed. +* `callback(result)` - A callback which is called as soon as any iterator returns + `true`, or after all the `iterator` functions have finished. Result will be + the first item in the array that passes the truth test (iterator) or the + value `undefined` if none passed. + +__Example__ + +```js +async.detect(['file1','file2','file3'], fs.exists, function(result){ + // result now equals the first file in the list that exists +}); +``` + +--------------------------------------- + + +### detectSeries(arr, iterator, callback) + +The same as [`detect`](#detect), only the `iterator` is applied to each item in `arr` +in series. This means the result is always the first in the original `arr` (in +terms of array order) that passes the truth test. + + +--------------------------------------- + + +### sortBy(arr, iterator, callback) + +Sorts a list by the results of running each `arr` value through an async `iterator`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, sortValue)` which must be called once it + has completed with an error (which can be `null`) and a value to use as the sort + criteria. +* `callback(err, results)` - A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is the items from + the original `arr` sorted by the values returned by the `iterator` calls. + +__Example__ + +```js +async.sortBy(['file1','file2','file3'], function(file, callback){ + fs.stat(file, function(err, stats){ + callback(err, stats.mtime); + }); +}, function(err, results){ + // results is now the original array of files sorted by + // modified date +}); +``` + +__Sort Order__ + +By modifying the callback parameter the sorting order can be influenced: + +```js +//ascending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(err, x); +}, function(err,result){ + //result callback +} ); + +//descending order +async.sortBy([1,9,3,5], function(x, callback){ + callback(err, x*-1); //<- x*-1 instead of x, turns the order around +}, function(err,result){ + //result callback +} ); +``` + +--------------------------------------- + + +### some(arr, iterator, callback) + +__Alias:__ `any` + +Returns `true` if at least one element in the `arr` satisfies an async test. +_The callback for each iterator call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. Once any iterator +call returns `true`, the main `callback` is immediately called. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a callback(truthValue) which must be + called with a boolean argument once it has completed. +* `callback(result)` - A callback which is called as soon as any iterator returns + `true`, or after all the iterator functions have finished. Result will be + either `true` or `false` depending on the values of the async tests. + +__Example__ + +```js +async.some(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then at least one of the files exists +}); +``` + +--------------------------------------- + + +### every(arr, iterator, callback) + +__Alias:__ `all` + +Returns `true` if every element in `arr` satisfies an async test. +_The callback for each `iterator` call only accepts a single argument of `true` or +`false`; it does not accept an error argument first!_ This is in-line with the +way node libraries work with truth tests like `fs.exists`. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A truth test to apply to each item in the array + in parallel. The iterator is passed a callback(truthValue) which must be + called with a boolean argument once it has completed. +* `callback(result)` - A callback which is called after all the `iterator` + functions have finished. Result will be either `true` or `false` depending on + the values of the async tests. + +__Example__ + +```js +async.every(['file1','file2','file3'], fs.exists, function(result){ + // if result is true then every file exists +}); +``` + +--------------------------------------- + + +### concat(arr, iterator, callback) + +Applies `iterator` to each item in `arr`, concatenating the results. Returns the +concatenated list. The `iterator`s are called in parallel, and the results are +concatenated as they return. There is no guarantee that the results array will +be returned in the original order of `arr` passed to the `iterator` function. + +__Arguments__ + +* `arr` - An array to iterate over. +* `iterator(item, callback)` - A function to apply to each item in `arr`. + The iterator is passed a `callback(err, results)` which must be called once it + has completed with an error (which can be `null`) and an array of results. +* `callback(err, results)` - A callback which is called after all the `iterator` + functions have finished, or an error occurs. Results is an array containing + the concatenated results of the `iterator` function. + +__Example__ + +```js +async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ + // files is now a list of filenames that exist in the 3 directories +}); +``` + +--------------------------------------- + + +### concatSeries(arr, iterator, callback) + +Same as [`concat`](#concat), but executes in series instead of parallel. + + +## Control Flow + + +### series(tasks, [callback]) + +Run the functions in the `tasks` array in series, each one running once the previous +function has completed. If any functions in the series pass an error to its +callback, no more functions are run, and `callback` is immediately called with the value of the error. +Otherwise, `callback` receives an array of results when `tasks` have completed. + +It is also possible to use an object instead of an array. Each property will be +run as a function, and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`series`](#series). + +**Note** that while many implementations preserve the order of object properties, the +[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) +explicitly states that + +> The mechanics and order of enumerating the properties is not specified. + +So if you rely on the order in which your series of functions are executed, and want +this to work on all platforms, consider using an array. + +__Arguments__ + +* `tasks` - An array or object containing functions to run, each function is passed + a `callback(err, result)` it must call on completion with an error `err` (which can + be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the `task` callbacks. + +__Example__ + +```js +async.series([ + function(callback){ + // do some stuff ... + callback(null, 'one'); + }, + function(callback){ + // do some more stuff ... + callback(null, 'two'); + } +], +// optional callback +function(err, results){ + // results is now equal to ['one', 'two'] +}); + + +// an example using an object instead of an array +async.series({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equal to: {one: 1, two: 2} +}); +``` + +--------------------------------------- + + +### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its +callback, the main `callback` is immediately called with the value of the error. +Once the `tasks` have completed, the results are passed to the final `callback` as an +array. + +It is also possible to use an object instead of an array. Each property will be +run as a function and the results will be passed to the final `callback` as an object +instead of an array. This can be a more readable way of handling results from +[`parallel`](#parallel). + + +__Arguments__ + +* `tasks` - An array or object containing functions to run. Each function is passed + a `callback(err, result)` which it must call on completion with an error `err` + (which can be `null`) and an optional `result` value. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the task callbacks. + +__Example__ + +```js +async.parallel([ + function(callback){ + setTimeout(function(){ + callback(null, 'one'); + }, 200); + }, + function(callback){ + setTimeout(function(){ + callback(null, 'two'); + }, 100); + } +], +// optional callback +function(err, results){ + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}); + + +// an example using an object instead of an array +async.parallel({ + one: function(callback){ + setTimeout(function(){ + callback(null, 1); + }, 200); + }, + two: function(callback){ + setTimeout(function(){ + callback(null, 2); + }, 100); + } +}, +function(err, results) { + // results is now equals to: {one: 1, two: 2} +}); +``` + +--------------------------------------- + + +### parallelLimit(tasks, limit, [callback]) + +The same as [`parallel`](#parallel), only `tasks` are executed in parallel +with a maximum of `limit` tasks executing at any time. + +Note that the `tasks` are not executed in batches, so there is no guarantee that +the first `limit` tasks will complete before any others are started. + +__Arguments__ + +* `tasks` - An array or object containing functions to run, each function is passed + a `callback(err, result)` it must call on completion with an error `err` (which can + be `null`) and an optional `result` value. +* `limit` - The maximum number of `tasks` to run at any time. +* `callback(err, results)` - An optional callback to run once all the functions + have completed. This function gets a results array (or object) containing all + the result arguments passed to the `task` callbacks. + +--------------------------------------- + + +### whilst(test, fn, callback) + +Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +__Arguments__ + +* `test()` - synchronous truth test to perform before each execution of `fn`. +* `fn(callback)` - A function which is called each time `test` passes. The function is + passed a `callback(err)`, which must be called once it has completed with an + optional `err` argument. +* `callback(err)` - A callback which is called after the test fails and repeated + execution of `fn` has stopped. + +__Example__ + +```js +var count = 0; + +async.whilst( + function () { return count < 5; }, + function (callback) { + count++; + setTimeout(callback, 1000); + }, + function (err) { + // 5 seconds have passed + } +); +``` + +--------------------------------------- + + +### doWhilst(fn, test, callback) + +The post-check version of [`whilst`](#whilst). To reflect the difference in +the order of operations, the arguments `test` and `fn` are switched. + +`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. + +--------------------------------------- + + +### until(test, fn, callback) + +Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, +or an error occurs. + +The inverse of [`whilst`](#whilst). + +--------------------------------------- + + +### doUntil(fn, test, callback) + +Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. + +--------------------------------------- + + +### forever(fn, errback) + +Calls the asynchronous function `fn` with a callback parameter that allows it to +call itself again, in series, indefinitely. + +If an error is passed to the callback then `errback` is called with the +error, and execution stops, otherwise it will never be called. + +```js +async.forever( + function(next) { + // next is suitable for passing to things that need a callback(err [, whatever]); + // it will result in this function being called again. + }, + function(err) { + // if next is called with a value in its first parameter, it will appear + // in here as 'err', and execution will stop. + } +); +``` + +--------------------------------------- + + +### waterfall(tasks, [callback]) + +Runs the `tasks` array of functions in series, each passing their results to the next in +the array. However, if any of the `tasks` pass an error to their own callback, the +next function is not executed, and the main `callback` is immediately called with +the error. + +__Arguments__ + +* `tasks` - An array of functions to run, each function is passed a + `callback(err, result1, result2, ...)` it must call on completion. The first + argument is an error (which can be `null`) and any further arguments will be + passed as arguments in order to the next task. +* `callback(err, [results])` - An optional callback to run once all the functions + have completed. This will be passed the results of the last task's callback. + + + +__Example__ + +```js +async.waterfall([ + function(callback){ + callback(null, 'one', 'two'); + }, + function(arg1, arg2, callback){ + // arg1 now equals 'one' and arg2 now equals 'two' + callback(null, 'three'); + }, + function(arg1, callback){ + // arg1 now equals 'three' + callback(null, 'done'); + } +], function (err, result) { + // result now equals 'done' +}); +``` + +--------------------------------------- + +### compose(fn1, fn2...) + +Creates a function which is a composition of the passed asynchronous +functions. Each function consumes the return value of the function that +follows. Composing functions `f()`, `g()`, and `h()` would produce the result of +`f(g(h()))`, only this version uses callbacks to obtain the return values. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* `functions...` - the asynchronous functions to compose + + +__Example__ + +```js +function add1(n, callback) { + setTimeout(function () { + callback(null, n + 1); + }, 10); +} + +function mul3(n, callback) { + setTimeout(function () { + callback(null, n * 3); + }, 10); +} + +var add1mul3 = async.compose(mul3, add1); + +add1mul3(4, function (err, result) { + // result now equals 15 +}); +``` + +--------------------------------------- + +### seq(fn1, fn2...) + +Version of the compose function that is more natural to read. +Each following function consumes the return value of the latter function. + +Each function is executed with the `this` binding of the composed function. + +__Arguments__ + +* functions... - the asynchronous functions to compose + + +__Example__ + +```js +// Requires lodash (or underscore), express3 and dresende's orm2. +// Part of an app, that fetches cats of the logged user. +// This example uses `seq` function to avoid overnesting and error +// handling clutter. +app.get('/cats', function(request, response) { + function handleError(err, data, callback) { + if (err) { + console.error(err); + response.json({ status: 'error', message: err.message }); + } + else { + callback(data); + } + } + var User = request.models.User; + async.seq( + _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) + handleError, + function(user, fn) { + user.getCats(fn); // 'getCats' has signature (callback(err, data)) + }, + handleError, + function(cats) { + response.json({ status: 'ok', message: 'Cats found', data: cats }); + } + )(req.session.user_id); + } +}); +``` + +--------------------------------------- + +### applyEach(fns, args..., callback) + +Applies the provided arguments to each function in the array, calling +`callback` after all functions have completed. If you only provide the first +argument, then it will return a function which lets you pass in the +arguments as if it were a single function call. + +__Arguments__ + +* `fns` - the asynchronous functions to all call with the same arguments +* `args...` - any number of separate arguments to pass to the function +* `callback` - the final argument should be the callback, called when all + functions have completed processing + + +__Example__ + +```js +async.applyEach([enableSearch, updateSchema], 'bucket', callback); + +// partial application example: +async.each( + buckets, + async.applyEach([enableSearch, updateSchema]), + callback +); +``` + +--------------------------------------- + + +### applyEachSeries(arr, iterator, callback) + +The same as [`applyEach`](#applyEach) only the functions are applied in series. + +--------------------------------------- + + +### queue(worker, concurrency) + +Creates a `queue` object with the specified `concurrency`. Tasks added to the +`queue` are processed in parallel (up to the `concurrency` limit). If all +`worker`s are in progress, the task is queued until one becomes available. +Once a `worker` completes a `task`, that `task`'s callback is called. + +__Arguments__ + +* `worker(task, callback)` - An asynchronous function for processing a queued + task, which must call its `callback(err)` argument when finished, with an + optional `error` as an argument. +* `concurrency` - An `integer` for determining how many `worker` functions should be + run in parallel. + +__Queue objects__ + +The `queue` object returned by this function has the following properties and +methods: + +* `length()` - a function returning the number of items waiting to be processed. +* `started` - a function returning whether or not any items have been pushed and processed by the queue +* `running()` - a function returning the number of items currently being processed. +* `idle()` - a function returning false if there are items waiting or being processed, or true if not. +* `concurrency` - an integer for determining how many `worker` functions should be + run in parallel. This property can be changed after a `queue` is created to + alter the concurrency on-the-fly. +* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once + the `worker` has finished processing the task. Instead of a single task, a `tasks` array + can be submitted. The respective callback is used for every task in the list. +* `unshift(task, [callback])` - add a new task to the front of the `queue`. +* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, + and further tasks will be queued. +* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. +* `paused` - a boolean for determining whether the queue is in a paused state +* `pause()` - a function that pauses the processing of tasks until `resume()` is called. +* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. +* `kill()` - a function that empties remaining tasks from the queue forcing it to go idle. + +__Example__ + +```js +// create a queue object with concurrency 2 + +var q = async.queue(function (task, callback) { + console.log('hello ' + task.name); + callback(); +}, 2); + + +// assign a callback +q.drain = function() { + console.log('all items have been processed'); +} + +// add some items to the queue + +q.push({name: 'foo'}, function (err) { + console.log('finished processing foo'); +}); +q.push({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); + +// add some items to the queue (batch-wise) + +q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { + console.log('finished processing bar'); +}); + +// add some items to the front of the queue + +q.unshift({name: 'bar'}, function (err) { + console.log('finished processing bar'); +}); +``` + + +--------------------------------------- + + +### priorityQueue(worker, concurrency) + +The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: + +* `push(task, priority, [callback])` - `priority` should be a number. If an array of + `tasks` is given, all tasks will be assigned the same priority. +* The `unshift` method was removed. + +--------------------------------------- + + +### cargo(worker, [payload]) + +Creates a `cargo` object with the specified payload. Tasks added to the +cargo will be processed altogether (up to the `payload` limit). If the +`worker` is in progress, the task is queued until it becomes available. Once +the `worker` has completed some tasks, each callback of those tasks is called. +Check out [this animation](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) for how `cargo` and `queue` work. + +While [queue](#queue) passes only one task to one of a group of workers +at a time, cargo passes an array of tasks to a single worker, repeating +when the worker is finished. + +__Arguments__ + +* `worker(tasks, callback)` - An asynchronous function for processing an array of + queued tasks, which must call its `callback(err)` argument when finished, with + an optional `err` argument. +* `payload` - An optional `integer` for determining how many tasks should be + processed per round; if omitted, the default is unlimited. + +__Cargo objects__ + +The `cargo` object returned by this function has the following properties and +methods: + +* `length()` - A function returning the number of items waiting to be processed. +* `payload` - An `integer` for determining how many tasks should be + process per round. This property can be changed after a `cargo` is created to + alter the payload on-the-fly. +* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called + once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` + can be submitted. The respective callback is used for every task in the list. +* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. +* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. +* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. + +__Example__ + +```js +// create a cargo object with payload 2 + +var cargo = async.cargo(function (tasks, callback) { + for(var i=0; i +### auto(tasks, [callback]) + +Determines the best order for running the functions in `tasks`, based on their +requirements. Each function can optionally depend on other functions being completed +first, and each function is run as soon as its requirements are satisfied. + +If any of the functions pass an error to their callback, it will not +complete (so any other functions depending on it will not run), and the main +`callback` is immediately called with the error. Functions also receive an +object containing the results of functions which have completed so far. + +Note, all functions are called with a `results` object as a second argument, +so it is unsafe to pass functions in the `tasks` object which cannot handle the +extra argument. + +For example, this snippet of code: + +```js +async.auto({ + readData: async.apply(fs.readFile, 'data.txt', 'utf-8') +}, callback); +``` + +will have the effect of calling `readFile` with the results object as the last +argument, which will fail: + +```js +fs.readFile('data.txt', 'utf-8', cb, {}); +``` + +Instead, wrap the call to `readFile` in a function which does not forward the +`results` object: + +```js +async.auto({ + readData: function(cb, results){ + fs.readFile('data.txt', 'utf-8', cb); + } +}, callback); +``` + +__Arguments__ + +* `tasks` - An object. Each of its properties is either a function or an array of + requirements, with the function itself the last item in the array. The object's key + of a property serves as the name of the task defined by that property, + i.e. can be used when specifying requirements for other tasks. + The function receives two arguments: (1) a `callback(err, result)` which must be + called when finished, passing an `error` (which can be `null`) and the result of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions. +* `callback(err, results)` - An optional callback which is called when all the + tasks have been completed. It receives the `err` argument if any `tasks` + pass an error to their callback. Results are always returned; however, if + an error occurs, no further `tasks` will be performed, and the results + object will only contain partial results. + + +__Example__ + +```js +async.auto({ + get_data: function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + make_folder: function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + }, + write_file: ['get_data', 'make_folder', function(callback, results){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + callback(null, 'filename'); + }], + email_link: ['write_file', function(callback, results){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + // results.write_file contains the filename returned by write_file. + callback(null, {'file':results.write_file, 'email':'user@example.com'}); + }] +}, function(err, results) { + console.log('err = ', err); + console.log('results = ', results); +}); +``` + +This is a fairly trivial example, but to do this using the basic parallel and +series functions would look like this: + +```js +async.parallel([ + function(callback){ + console.log('in get_data'); + // async code to get some data + callback(null, 'data', 'converted to array'); + }, + function(callback){ + console.log('in make_folder'); + // async code to create a directory to store a file in + // this is run at the same time as getting the data + callback(null, 'folder'); + } +], +function(err, results){ + async.series([ + function(callback){ + console.log('in write_file', JSON.stringify(results)); + // once there is some data and the directory exists, + // write the data to a file in the directory + results.push('filename'); + callback(null); + }, + function(callback){ + console.log('in email_link', JSON.stringify(results)); + // once the file is written let's email a link to it... + callback(null, {'file':results.pop(), 'email':'user@example.com'}); + } + ]); +}); +``` + +For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding +new tasks much easier (and the code more readable). + + +--------------------------------------- + + +### retry([times = 5], task, [callback]) + +Attempts to get a successful response from `task` no more than `times` times before +returning an error. If the task is successful, the `callback` will be passed the result +of the successfull task. If all attemps fail, the callback will be passed the error and +result (if any) of the final attempt. + +__Arguments__ + +* `times` - An integer indicating how many times to attempt the `task` before giving up. Defaults to 5. +* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` + which must be called when finished, passing `err` (which can be `null`) and the `result` of + the function's execution, and (2) a `results` object, containing the results of + the previously executed functions (if nested inside another control flow). +* `callback(err, results)` - An optional callback which is called when the + task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. + +The [`retry`](#retry) function can be used as a stand-alone control flow by passing a +callback, as shown below: + +```js +async.retry(3, apiMethod, function(err, result) { + // do something with the result +}); +``` + +It can also be embeded within other control flow functions to retry individual methods +that are not as reliable, like this: + +```js +async.auto({ + users: api.getUsers.bind(api), + payments: async.retry(3, api.getPayments.bind(api)) +}, function(err, results) { + // do something with the results +}); +``` + + +--------------------------------------- + + +### iterator(tasks) + +Creates an iterator function which calls the next function in the `tasks` array, +returning a continuation to call the next one after that. It's also possible to +“peek” at the next iterator with `iterator.next()`. + +This function is used internally by the `async` module, but can be useful when +you want to manually control the flow of functions in series. + +__Arguments__ + +* `tasks` - An array of functions to run. + +__Example__ + +```js +var iterator = async.iterator([ + function(){ sys.p('one'); }, + function(){ sys.p('two'); }, + function(){ sys.p('three'); } +]); + +node> var iterator2 = iterator(); +'one' +node> var iterator3 = iterator2(); +'two' +node> iterator3(); +'three' +node> var nextfn = iterator2.next(); +node> nextfn(); +'three' +``` + +--------------------------------------- + + +### apply(function, arguments..) + +Creates a continuation function with some arguments already applied. + +Useful as a shorthand when combined with other control flow functions. Any arguments +passed to the returned function are added to the arguments originally passed +to apply. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to automatically apply when the + continuation is called. + +__Example__ + +```js +// using apply + +async.parallel([ + async.apply(fs.writeFile, 'testfile1', 'test1'), + async.apply(fs.writeFile, 'testfile2', 'test2'), +]); + + +// the same process without using apply + +async.parallel([ + function(callback){ + fs.writeFile('testfile1', 'test1', callback); + }, + function(callback){ + fs.writeFile('testfile2', 'test2', callback); + } +]); +``` + +It's possible to pass any number of additional arguments when calling the +continuation: + +```js +node> var fn = async.apply(sys.puts, 'one'); +node> fn('two', 'three'); +one +two +three +``` + +--------------------------------------- + + +### nextTick(callback) + +Calls `callback` on a later loop around the event loop. In Node.js this just +calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` +if available, otherwise `setTimeout(callback, 0)`, which means other higher priority +events may precede the execution of `callback`. + +This is used internally for browser-compatibility purposes. + +__Arguments__ + +* `callback` - The function to call on a later loop around the event loop. + +__Example__ + +```js +var call_order = []; +async.nextTick(function(){ + call_order.push('two'); + // call_order now equals ['one','two'] +}); +call_order.push('one') +``` + + +### times(n, callback) + +Calls the `callback` function `n` times, and accumulates results in the same manner +you would use with [`map`](#map). + +__Arguments__ + +* `n` - The number of times to run the function. +* `callback` - The function to call `n` times. + +__Example__ + +```js +// Pretend this is some complicated async factory +var createUser = function(id, callback) { + callback(null, { + id: 'user' + id + }) +} +// generate 5 users +async.times(5, function(n, next){ + createUser(n, function(err, user) { + next(err, user) + }) +}, function(err, users) { + // we should now have 5 users +}); +``` + + +### timesSeries(n, callback) + +The same as [`times`](#times), only the iterator is applied to each item in `arr` in +series. The next `iterator` is only called once the current one has completed. +The results array will be in the same order as the original. + + +## Utils + + +### memoize(fn, [hasher]) + +Caches the results of an `async` function. When creating a hash to store function +results against, the callback is omitted from the hash and an optional hash +function can be used. + +The cache of results is exposed as the `memo` property of the function returned +by `memoize`. + +__Arguments__ + +* `fn` - The function to proxy and cache results from. +* `hasher` - Tn optional function for generating a custom hash for storing + results. It has all the arguments applied to it apart from the callback, and + must be synchronous. + +__Example__ + +```js +var slow_fn = function (name, callback) { + // do something + callback(null, result); +}; +var fn = async.memoize(slow_fn); + +// fn can now be used as if it were slow_fn +fn('some name', function () { + // callback +}); +``` + + +### unmemoize(fn) + +Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized +form. Handy for testing. + +__Arguments__ + +* `fn` - the memoized function + + +### log(function, arguments) + +Logs the result of an `async` function to the `console`. Only works in Node.js or +in browsers that support `console.log` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.log` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, 'hello ' + name); + }, 1000); +}; +``` +```js +node> async.log(hello, 'world'); +'hello world' +``` + +--------------------------------------- + + +### dir(function, arguments) + +Logs the result of an `async` function to the `console` using `console.dir` to +display the properties of the resulting object. Only works in Node.js or +in browsers that support `console.dir` and `console.error` (such as FF and Chrome). +If multiple arguments are returned from the async function, `console.dir` is +called on each argument in order. + +__Arguments__ + +* `function` - The function you want to eventually apply all arguments to. +* `arguments...` - Any number of arguments to apply to the function. + +__Example__ + +```js +var hello = function(name, callback){ + setTimeout(function(){ + callback(null, {hello: name}); + }, 1000); +}; +``` +```js +node> async.dir(hello, 'world'); +{hello: 'world'} +``` + +--------------------------------------- + + +### noConflict() + +Changes the value of `async` back to its original value, returning a reference to the +`async` object. diff --git a/node_modules/async/component.json b/node_modules/async/component.json new file mode 100644 index 0000000..bbb0115 --- /dev/null +++ b/node_modules/async/component.json @@ -0,0 +1,11 @@ +{ + "name": "async", + "repo": "caolan/async", + "description": "Higher-order functions and common patterns for asynchronous code", + "version": "0.1.23", + "keywords": [], + "dependencies": {}, + "development": {}, + "main": "lib/async.js", + "scripts": [ "lib/async.js" ] +} diff --git a/node_modules/async/lib/async.js b/node_modules/async/lib/async.js new file mode 100755 index 0000000..01e8afc --- /dev/null +++ b/node_modules/async/lib/async.js @@ -0,0 +1,1123 @@ +/*! + * async + * https://github.com/caolan/async + * + * Copyright 2010-2014 Caolan McMahon + * Released under the MIT license + */ +/*jshint onevar: false, indent:4 */ +/*global setImmediate: false, setTimeout: false, console: false */ +(function () { + + var async = {}; + + // global on the server, window in the browser + var root, previous_async; + + root = this; + if (root != null) { + previous_async = root.async; + } + + async.noConflict = function () { + root.async = previous_async; + return async; + }; + + function only_once(fn) { + var called = false; + return function() { + if (called) throw new Error("Callback was already called."); + called = true; + fn.apply(root, arguments); + } + } + + //// cross-browser compatiblity functions //// + + var _toString = Object.prototype.toString; + + var _isArray = Array.isArray || function (obj) { + return _toString.call(obj) === '[object Array]'; + }; + + var _each = function (arr, iterator) { + if (arr.forEach) { + return arr.forEach(iterator); + } + for (var i = 0; i < arr.length; i += 1) { + iterator(arr[i], i, arr); + } + }; + + var _map = function (arr, iterator) { + if (arr.map) { + return arr.map(iterator); + } + var results = []; + _each(arr, function (x, i, a) { + results.push(iterator(x, i, a)); + }); + return results; + }; + + var _reduce = function (arr, iterator, memo) { + if (arr.reduce) { + return arr.reduce(iterator, memo); + } + _each(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + }; + + var _keys = function (obj) { + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var k in obj) { + if (obj.hasOwnProperty(k)) { + keys.push(k); + } + } + return keys; + }; + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + if (typeof process === 'undefined' || !(process.nextTick)) { + if (typeof setImmediate === 'function') { + async.nextTick = function (fn) { + // not a direct alias for IE10 compatibility + setImmediate(fn); + }; + async.setImmediate = async.nextTick; + } + else { + async.nextTick = function (fn) { + setTimeout(fn, 0); + }; + async.setImmediate = async.nextTick; + } + } + else { + async.nextTick = process.nextTick; + if (typeof setImmediate !== 'undefined') { + async.setImmediate = function (fn) { + // not a direct alias for IE10 compatibility + setImmediate(fn); + }; + } + else { + async.setImmediate = async.nextTick; + } + } + + async.each = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + _each(arr, function (x) { + iterator(x, only_once(done) ); + }); + function done(err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed >= arr.length) { + callback(); + } + } + } + }; + async.forEach = async.each; + + async.eachSeries = function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length) { + return callback(); + } + var completed = 0; + var iterate = function () { + iterator(arr[completed], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + if (completed >= arr.length) { + callback(); + } + else { + iterate(); + } + } + }); + }; + iterate(); + }; + async.forEachSeries = async.eachSeries; + + async.eachLimit = function (arr, limit, iterator, callback) { + var fn = _eachLimit(limit); + fn.apply(null, [arr, iterator, callback]); + }; + async.forEachLimit = async.eachLimit; + + var _eachLimit = function (limit) { + + return function (arr, iterator, callback) { + callback = callback || function () {}; + if (!arr.length || limit <= 0) { + return callback(); + } + var completed = 0; + var started = 0; + var running = 0; + + (function replenish () { + if (completed >= arr.length) { + return callback(); + } + + while (running < limit && started < arr.length) { + started += 1; + running += 1; + iterator(arr[started - 1], function (err) { + if (err) { + callback(err); + callback = function () {}; + } + else { + completed += 1; + running -= 1; + if (completed >= arr.length) { + callback(); + } + else { + replenish(); + } + } + }); + } + })(); + }; + }; + + + var doParallel = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.each].concat(args)); + }; + }; + var doParallelLimit = function(limit, fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [_eachLimit(limit)].concat(args)); + }; + }; + var doSeries = function (fn) { + return function () { + var args = Array.prototype.slice.call(arguments); + return fn.apply(null, [async.eachSeries].concat(args)); + }; + }; + + + var _asyncMap = function (eachfn, arr, iterator, callback) { + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + if (!callback) { + eachfn(arr, function (x, callback) { + iterator(x.value, function (err) { + callback(err); + }); + }); + } else { + var results = []; + eachfn(arr, function (x, callback) { + iterator(x.value, function (err, v) { + results[x.index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + async.mapLimit = function (arr, limit, iterator, callback) { + return _mapLimit(limit)(arr, iterator, callback); + }; + + var _mapLimit = function(limit) { + return doParallelLimit(limit, _asyncMap); + }; + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.reduce = function (arr, memo, iterator, callback) { + async.eachSeries(arr, function (x, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err, memo); + }); + }; + // inject alias + async.inject = async.reduce; + // foldl alias + async.foldl = async.reduce; + + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, function (x) { + return x; + }).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + // foldr alias + async.foldr = async.reduceRight; + + var _filter = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.filter = doParallel(_filter); + async.filterSeries = doSeries(_filter); + // select alias + async.select = async.filter; + async.selectSeries = async.filterSeries; + + var _reject = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (!v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.reject = doParallel(_reject); + async.rejectSeries = doSeries(_reject); + + var _detect = function (eachfn, arr, iterator, main_callback) { + eachfn(arr, function (x, callback) { + iterator(x, function (result) { + if (result) { + main_callback(x); + main_callback = function () {}; + } + else { + callback(); + } + }); + }, function (err) { + main_callback(); + }); + }; + async.detect = doParallel(_detect); + async.detectSeries = doSeries(_detect); + + async.some = function (arr, iterator, main_callback) { + async.each(arr, function (x, callback) { + iterator(x, function (v) { + if (v) { + main_callback(true); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(false); + }); + }; + // any alias + async.any = async.some; + + async.every = function (arr, iterator, main_callback) { + async.each(arr, function (x, callback) { + iterator(x, function (v) { + if (!v) { + main_callback(false); + main_callback = function () {}; + } + callback(); + }); + }, function (err) { + main_callback(true); + }); + }; + // all alias + async.all = async.every; + + async.sortBy = function (arr, iterator, callback) { + async.map(arr, function (x, callback) { + iterator(x, function (err, criteria) { + if (err) { + callback(err); + } + else { + callback(null, {value: x, criteria: criteria}); + } + }); + }, function (err, results) { + if (err) { + return callback(err); + } + else { + var fn = function (left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }; + callback(null, _map(results.sort(fn), function (x) { + return x.value; + })); + } + }); + }; + + async.auto = function (tasks, callback) { + callback = callback || function () {}; + var keys = _keys(tasks); + var remainingTasks = keys.length + if (!remainingTasks) { + return callback(); + } + + var results = {}; + + var listeners = []; + var addListener = function (fn) { + listeners.unshift(fn); + }; + var removeListener = function (fn) { + for (var i = 0; i < listeners.length; i += 1) { + if (listeners[i] === fn) { + listeners.splice(i, 1); + return; + } + } + }; + var taskComplete = function () { + remainingTasks-- + _each(listeners.slice(0), function (fn) { + fn(); + }); + }; + + addListener(function () { + if (!remainingTasks) { + var theCallback = callback; + // prevent final callback from calling itself if it errors + callback = function () {}; + + theCallback(null, results); + } + }); + + _each(keys, function (k) { + var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; + var taskCallback = function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + if (err) { + var safeResults = {}; + _each(_keys(results), function(rkey) { + safeResults[rkey] = results[rkey]; + }); + safeResults[k] = args; + callback(err, safeResults); + // stop subsequent errors hitting callback multiple times + callback = function () {}; + } + else { + results[k] = args; + async.setImmediate(taskComplete); + } + }; + var requires = task.slice(0, Math.abs(task.length - 1)) || []; + var ready = function () { + return _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + }; + if (ready()) { + task[task.length - 1](taskCallback, results); + } + else { + var listener = function () { + if (ready()) { + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + }; + addListener(listener); + } + }); + }; + + async.retry = function(times, task, callback) { + var DEFAULT_TIMES = 5; + var attempts = []; + // Use defaults if times not passed + if (typeof times === 'function') { + callback = task; + task = times; + times = DEFAULT_TIMES; + } + // Make sure times is a number + times = parseInt(times, 10) || DEFAULT_TIMES; + var wrappedTask = function(wrappedCallback, wrappedResults) { + var retryAttempt = function(task, finalAttempt) { + return function(seriesCallback) { + task(function(err, result){ + seriesCallback(!err || finalAttempt, {err: err, result: result}); + }, wrappedResults); + }; + }; + while (times) { + attempts.push(retryAttempt(task, !(times-=1))); + } + async.series(attempts, function(done, data){ + data = data[data.length - 1]; + (wrappedCallback || callback)(data.err, data.result); + }); + } + // If a callback is passed, run this as a controll flow + return callback ? wrappedTask() : wrappedTask + }; + + async.waterfall = function (tasks, callback) { + callback = callback || function () {}; + if (!_isArray(tasks)) { + var err = new Error('First argument to waterfall must be an array of functions'); + return callback(err); + } + if (!tasks.length) { + return callback(); + } + var wrapIterator = function (iterator) { + return function (err) { + if (err) { + callback.apply(null, arguments); + callback = function () {}; + } + else { + var args = Array.prototype.slice.call(arguments, 1); + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + async.setImmediate(function () { + iterator.apply(null, args); + }); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + + var _parallel = function(eachfn, tasks, callback) { + callback = callback || function () {}; + if (_isArray(tasks)) { + eachfn.map(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + eachfn.each(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.parallel = function (tasks, callback) { + _parallel({ map: async.map, each: async.each }, tasks, callback); + }; + + async.parallelLimit = function(tasks, limit, callback) { + _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback); + }; + + async.series = function (tasks, callback) { + callback = callback || function () {}; + if (_isArray(tasks)) { + async.mapSeries(tasks, function (fn, callback) { + if (fn) { + fn(function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.eachSeries(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.iterator = function (tasks) { + var makeCallback = function (index) { + var fn = function () { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + }; + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + }; + return makeCallback(0); + }; + + async.apply = function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + return function () { + return fn.apply( + null, args.concat(Array.prototype.slice.call(arguments)) + ); + }; + }; + + var _concat = function (eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, function (x, cb) { + fn(x, function (err, y) { + r = r.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, r); + }); + }; + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + if (test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.whilst(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.doWhilst = function (iterator, test, callback) { + iterator(function (err) { + if (err) { + return callback(err); + } + var args = Array.prototype.slice.call(arguments, 1); + if (test.apply(null, args)) { + async.doWhilst(iterator, test, callback); + } + else { + callback(); + } + }); + }; + + async.until = function (test, iterator, callback) { + if (!test()) { + iterator(function (err) { + if (err) { + return callback(err); + } + async.until(test, iterator, callback); + }); + } + else { + callback(); + } + }; + + async.doUntil = function (iterator, test, callback) { + iterator(function (err) { + if (err) { + return callback(err); + } + var args = Array.prototype.slice.call(arguments, 1); + if (!test.apply(null, args)) { + async.doUntil(iterator, test, callback); + } + else { + callback(); + } + }); + }; + + async.queue = function (worker, concurrency) { + if (concurrency === undefined) { + concurrency = 1; + } + function _insert(q, data, pos, callback) { + if (!q.started){ + q.started = true; + } + if (!_isArray(data)) { + data = [data]; + } + if(data.length == 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + if (q.drain) { + q.drain(); + } + }); + } + _each(data, function(task) { + var item = { + data: task, + callback: typeof callback === 'function' ? callback : null + }; + + if (pos) { + q.tasks.unshift(item); + } else { + q.tasks.push(item); + } + + if (q.saturated && q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + var workers = 0; + var q = { + tasks: [], + concurrency: concurrency, + saturated: null, + empty: null, + drain: null, + started: false, + paused: false, + push: function (data, callback) { + _insert(q, data, false, callback); + }, + kill: function () { + q.drain = null; + q.tasks = []; + }, + unshift: function (data, callback) { + _insert(q, data, true, callback); + }, + process: function () { + if (!q.paused && workers < q.concurrency && q.tasks.length) { + var task = q.tasks.shift(); + if (q.empty && q.tasks.length === 0) { + q.empty(); + } + workers += 1; + var next = function () { + workers -= 1; + if (task.callback) { + task.callback.apply(task, arguments); + } + if (q.drain && q.tasks.length + workers === 0) { + q.drain(); + } + q.process(); + }; + var cb = only_once(next); + worker(task.data, cb); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + }, + idle: function() { + return q.tasks.length + workers === 0; + }, + pause: function () { + if (q.paused === true) { return; } + q.paused = true; + q.process(); + }, + resume: function () { + if (q.paused === false) { return; } + q.paused = false; + q.process(); + } + }; + return q; + }; + + async.priorityQueue = function (worker, concurrency) { + + function _compareTasks(a, b){ + return a.priority - b.priority; + }; + + function _binarySearch(sequence, item, compare) { + var beg = -1, + end = sequence.length - 1; + while (beg < end) { + var mid = beg + ((end - beg + 1) >>> 1); + if (compare(item, sequence[mid]) >= 0) { + beg = mid; + } else { + end = mid - 1; + } + } + return beg; + } + + function _insert(q, data, priority, callback) { + if (!q.started){ + q.started = true; + } + if (!_isArray(data)) { + data = [data]; + } + if(data.length == 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + if (q.drain) { + q.drain(); + } + }); + } + _each(data, function(task) { + var item = { + data: task, + priority: priority, + callback: typeof callback === 'function' ? callback : null + }; + + q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); + + if (q.saturated && q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + // Start with a normal queue + var q = async.queue(worker, concurrency); + + // Override push to accept second parameter representing priority + q.push = function (data, priority, callback) { + _insert(q, data, priority, callback); + }; + + // Remove unshift function + delete q.unshift; + + return q; + }; + + async.cargo = function (worker, payload) { + var working = false, + tasks = []; + + var cargo = { + tasks: tasks, + payload: payload, + saturated: null, + empty: null, + drain: null, + drained: true, + push: function (data, callback) { + if (!_isArray(data)) { + data = [data]; + } + _each(data, function(task) { + tasks.push({ + data: task, + callback: typeof callback === 'function' ? callback : null + }); + cargo.drained = false; + if (cargo.saturated && tasks.length === payload) { + cargo.saturated(); + } + }); + async.setImmediate(cargo.process); + }, + process: function process() { + if (working) return; + if (tasks.length === 0) { + if(cargo.drain && !cargo.drained) cargo.drain(); + cargo.drained = true; + return; + } + + var ts = typeof payload === 'number' + ? tasks.splice(0, payload) + : tasks.splice(0, tasks.length); + + var ds = _map(ts, function (task) { + return task.data; + }); + + if(cargo.empty) cargo.empty(); + working = true; + worker(ds, function () { + working = false; + + var args = arguments; + _each(ts, function (data) { + if (data.callback) { + data.callback.apply(null, args); + } + }); + + process(); + }); + }, + length: function () { + return tasks.length; + }, + running: function () { + return working; + } + }; + return cargo; + }; + + var _console_fn = function (name) { + return function (fn) { + var args = Array.prototype.slice.call(arguments, 1); + fn.apply(null, args.concat([function (err) { + var args = Array.prototype.slice.call(arguments, 1); + if (typeof console !== 'undefined') { + if (err) { + if (console.error) { + console.error(err); + } + } + else if (console[name]) { + _each(args, function (x) { + console[name](x); + }); + } + } + }])); + }; + }; + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + var queues = {}; + hasher = hasher || function (x) { + return x; + }; + var memoized = function () { + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + async.nextTick(function () { + callback.apply(null, memo[key]); + }); + } + else if (key in queues) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([function () { + memo[key] = arguments; + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, arguments); + } + }])); + } + }; + memoized.memo = memo; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + + async.times = function (count, iterator, callback) { + var counter = []; + for (var i = 0; i < count; i++) { + counter.push(i); + } + return async.map(counter, iterator, callback); + }; + + async.timesSeries = function (count, iterator, callback) { + var counter = []; + for (var i = 0; i < count; i++) { + counter.push(i); + } + return async.mapSeries(counter, iterator, callback); + }; + + async.seq = function (/* functions... */) { + var fns = arguments; + return function () { + var that = this; + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + async.reduce(fns, args, function (newargs, fn, cb) { + fn.apply(that, newargs.concat([function () { + var err = arguments[0]; + var nextargs = Array.prototype.slice.call(arguments, 1); + cb(err, nextargs); + }])) + }, + function (err, results) { + callback.apply(that, [err].concat(results)); + }); + }; + }; + + async.compose = function (/* functions... */) { + return async.seq.apply(null, Array.prototype.reverse.call(arguments)); + }; + + var _applyEach = function (eachfn, fns /*args...*/) { + var go = function () { + var that = this; + var args = Array.prototype.slice.call(arguments); + var callback = args.pop(); + return eachfn(fns, function (fn, cb) { + fn.apply(that, args.concat([cb])); + }, + callback); + }; + if (arguments.length > 2) { + var args = Array.prototype.slice.call(arguments, 2); + return go.apply(this, args); + } + else { + return go; + } + }; + async.applyEach = doParallel(_applyEach); + async.applyEachSeries = doSeries(_applyEach); + + async.forever = function (fn, callback) { + function next(err) { + if (err) { + if (callback) { + return callback(err); + } + throw err; + } + fn(next); + } + next(); + }; + + // Node.js + if (typeof module !== 'undefined' && module.exports) { + module.exports = async; + } + // AMD / RequireJS + else if (typeof define !== 'undefined' && define.amd) { + define([], function () { + return async; + }); + } + // included directly via