Fabric-ca mac部署 實踐

一醉蚁、環(huán)境準(zhǔn)備

  • go 版本 1.9以上(本機(jī) go version go1.10.3 darwin/amd64)
  • 依賴庫安裝

brew install libtool (mac)
sudo apt install libtool libltdl-dev (ubuntu)

二逻悠、安裝 Fabric-ca

    1. 安裝fabric-ca-server and fabric-ca-client 二進(jìn)制文件 到 $GOPATH/bin

go get -u github.com/hyperledger/fabric-ca/cmd/...

  • 2.注意切換到主分支上,否則如下
?  fabric-ca [74f8f4d] git pull --ff-only
remote: Counting objects: 45, done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 45 (delta 7), reused 45 (delta 7), pack-reused 0
Unpacking objects: 100% (45/45), done.
From https://github.com/hyperledger/fabric-ca
   3a0a86a..4b1f26c  master     -> origin/master
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>
  • 3.解決過程,如下
?  fabric-ca [74f8f4d] git branch
* (HEAD detached at v1.0.0)
  release-1.2
?  fabric-ca [74f8f4d] git checkout release-1.2
Previous HEAD position was 74f8f4d... FAB-5067 Hyperledger Fabric CA v1.0.0 release
Switched to branch 'release-1.2'
Your branch is up to date with 'origin/release-1.2'.
?  fabric-ca [release-1.2] git pull --ff-only
Already up to date.
    1. 啟動客戶端谒兄,報錯如下
?  fabric-ca [release-1.2] fabric-ca-server start -b admin:adminpw
zsh: command not found: fabric-ca-server
  • 5.報錯原因,環(huán)境變量配置問題(此處我mac用的 zsh)官套,解決如下:
?  fabric-ca [release-1.2] sudo find / -name fabric-ca-server
/Users/yunlong/go/bin/fabric-ca-server
  • 6.添加環(huán)境變量
  1. 編輯文件
?  fabric-ca  vim ~/.zshrc
  1. 添加如下 第五步找到的路徑
export PATH="/Users/yunlong/go/bin:$PATH"
  1. 加載配置
?  fabric-ca  exec zsh
  • 7.重新啟動
?  fabric-ca  fabric-ca-server start -b admin:adminpw
2018/08/08 15:28:11 [INFO] Created default configuration file at /Users/yunlong/Applications/fabric-ca/fabric-ca-server-config.yaml
2018/08/08 15:28:11 [INFO] Starting server in home directory: /Users/yunlong/Applications/fabric-ca
2018/08/08 15:28:11 [INFO] Server Version: 1.2.0
2018/08/08 15:28:11 [INFO] Server Levels: &{Identity:1 Affiliation:1 Certificate:1 Credential:1 RAInfo:1 Nonce:1}
2018/08/08 15:28:11 [WARNING] &{69 The specified CA certificate file /Users/yunlong/Applications/fabric-ca/ca-cert.pem does not exist}
2018/08/08 15:28:11 [INFO] generating key: &{A:ecdsa S:256}
2018/08/08 15:28:11 [INFO] encoded CSR
2018/08/08 15:28:11 [INFO] signed certificate with serial number 74053294106764471670431733063714078401174691198
2018/08/08 15:28:11 [INFO] The CA key and certificate were generated for CA
2018/08/08 15:28:11 [INFO] The key was stored by BCCSP provider 'SW'
2018/08/08 15:28:11 [INFO] The certificate is at: /Users/yunlong/Applications/fabric-ca/ca-cert.pem
2018/08/08 15:28:11 [INFO] Initialized sqlite3 database at /Users/yunlong/Applications/fabric-ca/fabric-ca-server.db
2018/08/08 15:28:11 [INFO] The issuer key was successfully stored. The public key is at: /Users/yunlong/Applications/fabric-ca/IssuerPublicKey, secret key is at: /Users/yunlong/Applications/fabric-ca/msp/keystore/IssuerSecretKey
2018/08/08 15:28:12 [INFO] The revocation key was successfully stored. The public key is at: /Users/yunlong/Applications/fabric-ca/IssuerRevocationPublicKey, private key is at: /Users/yunlong/Applications/fabric-ca/msp/keystore/IssuerRevocationPrivateKey
2018/08/08 15:28:12 [INFO] Home directory for default CA: /Users/yunlong/Applications/fabric-ca
2018/08/08 15:28:12 [INFO] Listening on http://0.0.0.0:7054

三雀扶、簡單使用,測試

  • 1.重開一個終端,查看當(dāng)前目錄下文件
?  fabric-ca  tree
.
├── IssuerPublicKey
├── IssuerRevocationPublicKey
├── ca-cert.pem
├── fabric-ca-server-config.yaml
├── fabric-ca-server.db
└── msp
    └── keystore
        ├── IssuerRevocationPrivateKey
        ├── IssuerSecretKey
        └── c73b84199e4d095def6bc40d514ded38be950970592848fb8230e13f00848de6_sk

2 directories, 8 files
  • 2.通過openssl命令查看證書內(nèi)容(如下可以看到荒叶,數(shù)字證書包含了簽名算法信息碾阁、申請者基本信息、申請者公鑰信息等)
?  fabric-ca  openssl x509 -in ca-cert.pem -inform pem -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0c:f8:aa:20:34:a9:40:7f:89:3c:ee:4c:7d:84:27:37:64:87:dd:7e
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: C=US, ST=North Carolina, O=Hyperledger, OU=Fabric, CN=fabric-ca-server
        Validity
            Not Before: Aug  8 07:23:00 2018 GMT
            Not After : Aug  4 07:23:00 2033 GMT
        Subject: C=US, ST=North Carolina, O=Hyperledger, OU=Fabric, CN=fabric-ca-server
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:c7:ca:6e:a3:d7:09:f7:5f:d8:37:5b:e5:50:1e:
                    b2:72:ec:98:95:92:ef:36:83:3a:83:10:43:5d:5c:
                    c8:44:fa:55:4d:1d:40:b0:8f:a6:2c:52:2d:0f:10:
                    fd:6b:09:75:28:b2:b8:32:ee:f5:9b:f2:88:5d:83:
                    57:17:f3:b4:2f
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:1
            X509v3 Subject Key Identifier:
                8F:49:3A:41:46:C4:95:BA:0A:D7:5C:9F:18:CF:FB:B9:EF:32:88:AF
    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:62:ad:56:8f:42:49:54:c4:f1:9c:e6:c6:e7:fb:
         03:19:83:81:1a:14:33:86:50:b8:b8:47:46:6f:81:3d:a6:90:
         02:20:32:8a:98:b7:1b:c8:4c:52:9a:36:ce:d1:b7:65:8b:36:
         8c:00:2f:f3:16:73:4e:3b:f2:52:98:43:d0:2d:f9:1b
  • 3.打開存儲發(fā)放證書信息的sqlite3 數(shù)據(jù)庫
?  fabric-ca  sqlite3 fabric-ca-server.db
SQLite version 3.19.3 2017-06-27 16:48:08
Enter ".help" for usage hints.
sqlite> .tables
affiliations               properties
certificates               revocation_authority_info
credentials                users
nonces
sqlite> select *from users;
admin|$2a$10$1YDii60staOkDsblKUxwXurcnpvFirMUkR2oo09suiR9y5stsp/wm|client||[{"name":"hf.Registrar.DelegateRoles","value":"*"},{"name":"hf.Revoker","value":"1"},{"name":"hf.IntermediateCA","value":"1"},{"name":"hf.GenCRL","value":"1"},{"name":"hf.Registrar.Attributes","value":"*"},{"name":"hf.AffiliationMgr","value":"1"},{"name":"hf.Registrar.Roles","value":"*"}]|0|-1|1
sqlite> select *from certificates;
sqlite>

其中users表中目前只有啟動時設(shè)定的引導(dǎo)節(jié)點些楣,還沒有注冊其他節(jié)點脂凶。certificates表中目前沒有任何發(fā)放證書記錄

  • 4.使用fabric-ca先登記引導(dǎo)節(jié)點,命令如下:
    這里admin和adminpw即為fabric-ca-server啟動時設(shè)置的引導(dǎo)節(jié)點登記id和密碼
    fabric-ca-client 執(zhí)行結(jié)果:
?  fabric-ca  fabric-ca-client enroll -u http://admin:adminpw@localhost:7054
2018/08/08 16:45:53 [INFO] Created a default configuration file at /Users/yunlong/.fabric-ca-client/fabric-ca-client-config.yaml
2018/08/08 16:45:53 [INFO] generating key: &{A:ecdsa S:256}
2018/08/08 16:45:53 [INFO] encoded CSR
2018/08/08 16:45:53 [INFO] Stored client certificate at /Users/yunlong/.fabric-ca-client/msp/signcerts/cert.pem
2018/08/08 16:45:53 [INFO] Stored root CA certificate at /Users/yunlong/.fabric-ca-client/msp/cacerts/localhost-7054.pem
  • 5.server 接收到登記請求:
2018/08/08 16:45:53 [INFO] signed certificate with serial number 260014369527395255236344828754181219899579142314
2018/08/08 16:45:53 [INFO] 127.0.0.1:61210 POST /enroll 201 0 "OK"
  • 6.在ca-client目錄下生成的目錄結(jié)構(gòu)如下:
?  fabric-ca  tree /Users/yunlong/.fabric-ca-client
/Users/yunlong/.fabric-ca-client
├── fabric-ca-client-config.yaml
└── msp
    ├── cacerts
    │   └── localhost-7054.pem
    ├── keystore
    │   └── 7b4b9b03c83c11081774ad8385765dfca195f0dc04e3a2efae419d9eff570418_sk
    ├── signcerts
    │   └── cert.pem
    └── user

其中msp/signcerts目錄下存儲的為client的數(shù)字證書愁茁,cacerts目錄下存儲的為證書鏈信息蚕钦。

  • 7.打開sqlite3數(shù)據(jù)庫,可以看到剛剛頒發(fā)的數(shù)字證書已經(jīng)記錄在數(shù)據(jù)庫里了
sqlite> select *from certificates;
sqlite> select *from certificates;
admin|2d8b729447b9da894a82943c2c692052e6ad90aa|8f493a4146c495ba0ad75c9f18cffbb9ef3288af||good|0|2019-08-08 08:46:00+00:00|0001-01-01 00:00:00+00:00|-----BEGIN CERTIFICATE-----
MIICODCCAd+gAwIBAgIULYtylEe52olKgpQ8LGkgUuatkKowCgYIKoZIzj0EAwIw
aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK
EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt
Y2Etc2VydmVyMB4XDTE4MDgwODA4NDEwMFoXDTE5MDgwODA4NDYwMFowXTELMAkG
A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl
cmxlZGdlcjEPMA0GA1UECxMGY2xpZW50MQ4wDAYDVQQDEwVhZG1pbjBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABAplU7X/AVqTf4+D26GONNPm07Ra5KLTkANuIzIt
BLjT3sqkQXVGufL7/LdnCfIUVfIx1XP/pKeaG4hz5+QvfoCjcjBwMA4GA1UdDwEB
/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBT14uqOio2f9ioMw380s7DG
P1agFTAfBgNVHSMEGDAWgBSPSTpBRsSVugrXXJ8Yz/u57zKIrzAQBgNVHREECTAH
ggVib2dvbjAKBggqhkjOPQQDAgNHADBEAiAGHoFsb3GRZZyXa8PGofiimQDEIxeU
jzz9LkoH90gQIAIgEpel1MGL1LE8f3rzX4n8YKAGOlD0NaLv9ArIOiOv/pA=
-----END CERTIFICATE-----
  • 8.接下來使用fabric-ca-client注冊一個新的節(jié)點鹅很,這一步就是為fabric中的peer嘶居、user角色進(jìn)行注冊并登記的過程了,注冊的命令為:
    fabric-ca-client register --id.name admin2 --id.type user --id.affiliation org1.department1 --id.attrs 'hf.Revoker=true,foo=bar'
    這里有兩點需要注意:
  1. --id.type參數(shù)必須是是server端配置文件里hf.Registrar.Roles屬性值里的一個
    打開fabric-ca-server的配置文件
125   identities:
126      - name: admin
127        pass: adminpw
128        type: client
129        affiliation: ""
130        attrs:
131           hf.Registrar.Roles: "*"
132           hf.Registrar.DelegateRoles: "*"
133           hf.Revoker: true
134           hf.IntermediateCA: true
135           hf.GenCRL: true
136           hf.Registrar.Attributes: "*"
137           hf.AffiliationMgr: true

其中通過hf.Registrar.Roles的屬性值可以看出促煮,客戶端可以注冊的類型是"*"代表所有包括( client,user,peer,validator和auditor)

  1. --id.affiliation這個屬性表示:被注冊對象的從屬關(guān)系參數(shù)一定要歸屬于預(yù)先配置的組織屬性邮屁。換句話說,被注冊對象的affiliation參數(shù)一定要是預(yù)先配置的affiliation參數(shù)的一個前綴菠齿。例如佑吝,假設(shè)預(yù)先配置的組織關(guān)系為:“a.b.c”,那么新注冊的對象的affiliation屬性可以是“a.b.c”绳匀,也可以是“a.b”芋忿,但“a.c”就不能通過注冊炸客。
    執(zhí)行節(jié)點注冊命令后,注冊了一個user結(jié)點:

client端執(zhí)行結(jié)果:

?  fabric-ca  fabric-ca-client register --id.name admin2 --id.type user --id.affiliation org1.department1 --id.attrs 'hf.Revoker=true,foo=bar'
2018/08/08 17:53:35 [INFO] Configuration file location: /Users/yunlong/.fabric-ca-client/fabric-ca-client-config.yaml
Password: BDQDZMAmkwHE

這里分配的password需要記住戈钢,后面在登記該節(jié)點時會用到嚷量。
server端接收到請求:

2018/08/08 17:53:35 [INFO] 127.0.0.1:63853 POST /register 201 0 "OK"
  • 9.登記剛剛注冊過的admin2節(jié)點,登記命令為:
    sudo fabric-ca-client enroll -u http://admin2:BDQDZMAmkwHE@localhost:7054 -M $FABRIC_CA_CLIENT_HOME/msp
    這里登記時使用的erollId和密碼就是上邊注冊過程中的節(jié)點名稱和返回的密碼信息逆趣。這冊過程中也是可以指定密碼的。
    執(zhí)行登記命令嗜历,結(jié)果如下:
?  fabric-ca  sudo fabric-ca-client enroll -u http://admin2:BDQDZMAmkwHE@localhost:7054 -M $FABRIC_CA_CLIENT_HOME/msp
Password:
2018/08/08 18:01:47 [INFO] generating key: &{A:ecdsa S:256}
2018/08/08 18:01:47 [INFO] encoded CSR
2018/08/08 18:01:47 [INFO] Stored client certificate at /msp/signcerts/cert.pem
2018/08/08 18:01:47 [INFO] Stored root CA certificate at /msp/cacerts/localhost-7054.pem

此處sudo 是因為我沒有設(shè)置環(huán)境變量配置目錄要創(chuàng)建目錄權(quán)限

  • 10.打開fabric-ca-server的sqlite數(shù)據(jù)庫
sqlite> select *from users;
admin|$2a$10$1YDii60staOkDsblKUxwXurcnpvFirMUkR2oo09suiR9y5stsp/wm|client||[{"name":"hf.Registrar.DelegateRoles","value":"*"},{"name":"hf.Revoker","value":"1"},{"name":"hf.IntermediateCA","value":"1"},{"name":"hf.GenCRL","value":"1"},{"name":"hf.Registrar.Attributes","value":"*"},{"name":"hf.AffiliationMgr","value":"1"},{"name":"hf.Registrar.Roles","value":"*"}]|1|-1|1
admin2|$2a$10$ij5tKwGKPwNh7Pf3FP.WNeht62MVxo7eFHKmxeFb5NxjsjYf0pwjK|user|org1.department1|[{"name":"hf.Revoker","value":"true"},{"name":"foo","value":"bar"},{"name":"hf.EnrollmentID","value":"admin2","ecert":true},{"name":"hf.Type","value":"user","ecert":true},{"name":"hf.Affiliation","value":"org1.department1","ecert":true}]|1|-1|1
sqlite>
  • 11.查看用戶信息宣渗,其中有一個client節(jié)點admin和一個user節(jié)點admin2。其中admin是一個intermediateCA梨州。
    打開數(shù)據(jù)庫表certificates痕囱,這是可以看到給admin2所頒發(fā)的證書已經(jīng)記錄了
sqlite> select *from certificates;
admin|2d8b729447b9da894a82943c2c692052e6ad90aa|8f493a4146c495ba0ad75c9f18cffbb9ef3288af||good|0|2019-08-08 08:46:00+00:00|0001-01-01 00:00:00+00:00|-----BEGIN CERTIFICATE-----
MIICODCCAd+gAwIBAgIULYtylEe52olKgpQ8LGkgUuatkKowCgYIKoZIzj0EAwIw
aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK
EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt
Y2Etc2VydmVyMB4XDTE4MDgwODA4NDEwMFoXDTE5MDgwODA4NDYwMFowXTELMAkG
A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl
cmxlZGdlcjEPMA0GA1UECxMGY2xpZW50MQ4wDAYDVQQDEwVhZG1pbjBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABAplU7X/AVqTf4+D26GONNPm07Ra5KLTkANuIzIt
BLjT3sqkQXVGufL7/LdnCfIUVfIx1XP/pKeaG4hz5+QvfoCjcjBwMA4GA1UdDwEB
/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBT14uqOio2f9ioMw380s7DG
P1agFTAfBgNVHSMEGDAWgBSPSTpBRsSVugrXXJ8Yz/u57zKIrzAQBgNVHREECTAH
ggVib2dvbjAKBggqhkjOPQQDAgNHADBEAiAGHoFsb3GRZZyXa8PGofiimQDEIxeU
jzz9LkoH90gQIAIgEpel1MGL1LE8f3rzX4n8YKAGOlD0NaLv9ArIOiOv/pA=
-----END CERTIFICATE-----
|1
admin2|6c8efe0b08916a953fa8a0054ad879c4c48bff63|8f493a4146c495ba0ad75c9f18cffbb9ef3288af||good|0|2019-08-08 10:02:00+00:00|0001-01-01 00:00:00+00:00|-----BEGIN CERTIFICATE-----
MIICwzCCAmqgAwIBAgIUbI7+CwiRapU/qKAFSth5xMSL/2MwCgYIKoZIzj0EAwIw
aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK
EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt
Y2Etc2VydmVyMB4XDTE4MDgwODA5NTcwMFoXDTE5MDgwODEwMDIwMFowfTELMAkG
A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl
cmxlZGdlcjEuMAsGA1UECxMEdXNlcjALBgNVBAsTBG9yZzEwEgYDVQQLEwtkZXBh
cnRtZW50MTEPMA0GA1UEAxMGYWRtaW4yMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEgTh1/es2IndpNkeqB1rsyGTqIIyyb0s/DxkhaXUWeapU//bagVYCsHAiXSNX
SXZX/gJNDsHKwWZHxkTuAlqlpqOB3DCB2TAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0T
AQH/BAIwADAdBgNVHQ4EFgQU2cR+jSPNFV+IwsQKnGnWwdO3GAQwHwYDVR0jBBgw
FoAUj0k6QUbElboK11yfGM/7ue8yiK8wEAYDVR0RBAkwB4IFYm9nb24wZwYIKgME
BQYHCAEEW3siYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiJvcmcxLmRlcGFydG1l
bnQxIiwiaGYuRW5yb2xsbWVudElEIjoiYWRtaW4yIiwiaGYuVHlwZSI6InVzZXIi
fX0wCgYIKoZIzj0EAwIDRwAwRAIgFhnmmq4qA11tjYDTnRPawjsSBXLFCNGk8OjM
Hepn66wCIEjE5L/D2MPx/rZGNewlQM6sjiWsVTYsn2+6nsmQ/Cw9
-----END CERTIFICATE-----
|1
sqlite>
  • 12重新登記節(jié)點,在節(jié)點授權(quán)即將到期是需要重新登記節(jié)點信息暴匠。重新登記的命令為:
    fabric-ca-client reenroll
?  fabric-ca  fabric-ca-client reenroll
2018/08/08 18:55:55 [INFO] Configuration file location: /Users/yunlong/.fabric-ca-client/fabric-ca-client-config.yaml
2018/08/08 18:55:55 [INFO] generating key: &{A:ecdsa S:256}
2018/08/08 18:55:55 [INFO] encoded CSR
2018/08/08 18:55:55 [INFO] Stored client certificate at /Users/yunlong/.fabric-ca-client/msp/signcerts/cert.pem
2018/08/08 18:55:55 [INFO] Stored root CA certificate at /Users/yunlong/.fabric-ca-client/msp/cacerts/localhost-7054.pem
  • 13.重新登記過程重新發(fā)送簽名證書請求鞍恢,獲取新的數(shù)字證書。
    打開server端數(shù)據(jù)庫每窖,可以看到兩條頒發(fā)給節(jié)點admin的證書記錄帮掉,兩個證書頒發(fā)的時間不一樣。
sqlite> select *from certificates;
admin|2d8b729447b9da894a82943c2c692052e6ad90aa|8f493a4146c495ba0ad75c9f18cffbb9ef3288af||good|0|2019-08-08 08:46:00+00:00|0001-01-01 00:00:00+00:00|-----BEGIN CERTIFICATE-----
MIICODCCAd+gAwIBAgIULYtylEe52olKgpQ8LGkgUuatkKowCgYIKoZIzj0EAwIw
aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK
EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt
Y2Etc2VydmVyMB4XDTE4MDgwODA4NDEwMFoXDTE5MDgwODA4NDYwMFowXTELMAkG
A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl
cmxlZGdlcjEPMA0GA1UECxMGY2xpZW50MQ4wDAYDVQQDEwVhZG1pbjBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABAplU7X/AVqTf4+D26GONNPm07Ra5KLTkANuIzIt
BLjT3sqkQXVGufL7/LdnCfIUVfIx1XP/pKeaG4hz5+QvfoCjcjBwMA4GA1UdDwEB
/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBT14uqOio2f9ioMw380s7DG
P1agFTAfBgNVHSMEGDAWgBSPSTpBRsSVugrXXJ8Yz/u57zKIrzAQBgNVHREECTAH
ggVib2dvbjAKBggqhkjOPQQDAgNHADBEAiAGHoFsb3GRZZyXa8PGofiimQDEIxeU
jzz9LkoH90gQIAIgEpel1MGL1LE8f3rzX4n8YKAGOlD0NaLv9ArIOiOv/pA=
-----END CERTIFICATE-----
|1
admin2|6c8efe0b08916a953fa8a0054ad879c4c48bff63|8f493a4146c495ba0ad75c9f18cffbb9ef3288af||good|0|2019-08-08 10:02:00+00:00|0001-01-01 00:00:00+00:00|-----BEGIN CERTIFICATE-----
MIICwzCCAmqgAwIBAgIUbI7+CwiRapU/qKAFSth5xMSL/2MwCgYIKoZIzj0EAwIw
aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK
EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt
Y2Etc2VydmVyMB4XDTE4MDgwODA5NTcwMFoXDTE5MDgwODEwMDIwMFowfTELMAkG
A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl
cmxlZGdlcjEuMAsGA1UECxMEdXNlcjALBgNVBAsTBG9yZzEwEgYDVQQLEwtkZXBh
cnRtZW50MTEPMA0GA1UEAxMGYWRtaW4yMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEgTh1/es2IndpNkeqB1rsyGTqIIyyb0s/DxkhaXUWeapU//bagVYCsHAiXSNX
SXZX/gJNDsHKwWZHxkTuAlqlpqOB3DCB2TAOBgNVHQ8BAf8EBAMCB4AwDAYDVR0T
AQH/BAIwADAdBgNVHQ4EFgQU2cR+jSPNFV+IwsQKnGnWwdO3GAQwHwYDVR0jBBgw
FoAUj0k6QUbElboK11yfGM/7ue8yiK8wEAYDVR0RBAkwB4IFYm9nb24wZwYIKgME
BQYHCAEEW3siYXR0cnMiOnsiaGYuQWZmaWxpYXRpb24iOiJvcmcxLmRlcGFydG1l
bnQxIiwiaGYuRW5yb2xsbWVudElEIjoiYWRtaW4yIiwiaGYuVHlwZSI6InVzZXIi
fX0wCgYIKoZIzj0EAwIDRwAwRAIgFhnmmq4qA11tjYDTnRPawjsSBXLFCNGk8OjM
Hepn66wCIEjE5L/D2MPx/rZGNewlQM6sjiWsVTYsn2+6nsmQ/Cw9
-----END CERTIFICATE-----
|1
admin|740964b0033cfcf83b3df9c8501bbf2e2dc9e553|8f493a4146c495ba0ad75c9f18cffbb9ef3288af||good|0|2019-08-08 10:56:00+00:00|0001-01-01 00:00:00+00:00|-----BEGIN CERTIFICATE-----
MIICODCCAd+gAwIBAgIUdAlksAM8/Pg7PfnIUBu/Li3J5VMwCgYIKoZIzj0EAwIw
aDELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQK
EwtIeXBlcmxlZGdlcjEPMA0GA1UECxMGRmFicmljMRkwFwYDVQQDExBmYWJyaWMt
Y2Etc2VydmVyMB4XDTE4MDgwODEwNTEwMFoXDTE5MDgwODEwNTYwMFowXTELMAkG
A1UEBhMCVVMxFzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRQwEgYDVQQKEwtIeXBl
cmxlZGdlcjEPMA0GA1UECxMGY2xpZW50MQ4wDAYDVQQDEwVhZG1pbjBZMBMGByqG
SM49AgEGCCqGSM49AwEHA0IABKmzuxWJF7ktC+rJe88IotUSzcJ4M2S3aDfW95cB
AjskynJyI5wL7aRnKbbabqGw6oecTtE80o3mDrwuCkZbhrejcjBwMA4GA1UdDwEB
/wQEAwIHgDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSx1Pn7YNSyFUwMtKgi4YL7
6b4epDAfBgNVHSMEGDAWgBSPSTpBRsSVugrXXJ8Yz/u57zKIrzAQBgNVHREECTAH
ggVib2dvbjAKBggqhkjOPQQDAgNHADBEAiA/un/UESFnG5JsDxguPG3sqTwMGUDb
hVmv95HYkEgkJAIgBrWmP3W3x9VU2cqgp+859ZaqpVb5FJFeRhNl/WTpjJw=
-----END CERTIFICATE-----
|1
sqlite>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窒典,一起剝皮案震驚了整個濱河市蟆炊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瀑志,老刑警劉巖涩搓,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異劈猪,居然都是意外死亡昧甘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門战得,熙熙樓的掌柜王于貴愁眉苦臉地迎上來充边,“玉大人,你說我怎么就攤上這事贡避⊥蠢瑁” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵刮吧,是天一觀的道長湖饱。 經(jīng)常有香客問我,道長杀捻,這世上最難降的妖魔是什么井厌? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上仅仆,老公的妹妹穿的比我還像新娘器赞。我一直安慰自己,他們只是感情好墓拜,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布港柜。 她就那樣靜靜地躺著,像睡著了一般咳榜。 火紅的嫁衣襯著肌膚如雪夏醉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天涌韩,我揣著相機(jī)與錄音畔柔,去河邊找鬼。 笑死臣樱,一個胖子當(dāng)著我的面吹牛靶擦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雇毫,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼玄捕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了棚放?” 一聲冷哼從身側(cè)響起桩盲,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎席吴,沒想到半個月后赌结,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡孝冒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年柬姚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庄涡。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡量承,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出穴店,到底是詐尸還是另有隱情撕捍,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布泣洞,位于F島的核電站忧风,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏球凰。R本人自食惡果不足惜狮腿,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一腿宰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缘厢,春花似錦吃度、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至英遭,卻和暖如春拖刃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贪绘。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留央碟,地道東北人税灌。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像亿虽,于是被迫代替她去往敵國和親菱涤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容