簡體   English   中英

使用 python regex 從此字符串中提取證書、私鑰和證書鏈

[英]Extract cert, private key and cert chain from this string using python regex

我有這個字符串(顯然我從所有 3 行中剪掉了一些行,以免暴露自己)。 我希望 python 從中提取:

中級證書

鑰匙

公開證書

並將它們寫入 3 個單獨的文件,如上命名。

我正在嘗試使用這個正則表達式,但它將所有這些都結合在一起。

match1 = re.findall(r"Intermediate cert((.|\\n)*)(-----END CERTIFICATE-----)",strsecret,re.MULTILINE)

    (GetSecretResult){
Errors = ""
Secret =
  (Secret){
     Name = "new cert"
     Items =
        (ArrayOfSecretItem){
           SecretItem[] =
              (SecretItem){
                 Value = "new cert"
                 Id = 1470
                 FieldId = 334
                 FieldName = "E-Mail"
                 IsFile = False
                 IsNotes = False
                 IsPassword = False
                 FieldDisplayName = "E-Mail"
              },
              (SecretItem){
                 Value = "no password"
                 Id = 1471
                 FieldId = 335
                 FieldName = "Password"
                 IsFile = False
                 IsNotes = False
                 IsPassword = True
                 FieldDisplayName = "Password"
              },
              (SecretItem){
                 Value = None
                 Id = 1472
                 FieldId = 336
                 FieldName = "Account ID"
                 IsFile = False
                 IsNotes = False
                 IsPassword = False
                 FieldDisplayName = "Account ID"
              },
              (SecretItem){
                 Value = None
                 Id = 1473
                 FieldId = 337
                 FieldName = "Sign-in Link"
                 IsFile = False
                 IsNotes = False
                 IsPassword = False
                 FieldDisplayName = "Sign-in Link"
              },
              (SecretItem){
                 Value = "Intermediate cert

-----BEGIN CERTIFICATE-----
MIIEiTCCA3GgAwIBAgIQAlqK7xlvfg1sIQSyGuZwKzANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xNzExMDYxMjIzNTJaFw0yNzExMDYxMjIzNTJaMFwxCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xGzAZBgNVBAMTElRoYXd0ZSBSU0EgQ0EgMjAxODCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAMoIXuVTipccHkMvtoqnVumLhEOorJ16VYJ6FEuGty+P
Up8cyrEgW2+6It2mnC142ukGCE6+E6bry7s+uQUMPkrh8DIfE071BsVHc4k+gKOL
YLVQA+x9HONZXx9vvy8pl9bu+NVYWKGxzGxBK0CBozmVUCeXQPJKPTZleYuNM18p
U1P8Xh1CDguM+ZEoew==
-----END CERTIFICATE-----


Key

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAwvZA860zwvDZhCQNFwB0Jzg5EQ268/1Hzf3w4RJJKv5gi/v3
7pXEOJ10bpasoL3+8kIIYhDRQ83V0svf11qf3eJy0prp/mBjSGTcy5yJdixMfyAZ
AQ9/fPYkdt91leCm0JW9DnlWyIp0vwHV1Hu1vHyYtZ7yyE//yZHTLsyRFXPJ9bP6
JEL/w6HIL4thHqt5cEExmTmlMmEYD+6CTBGxwy3dqi+0yqMjk7yR1+pNql7oUrO2
7jj/QYAcjp34jysYBkyiMC4OQA8OXwEQt0uH3IPULhu0nWr5xD+wNlJo8VE4uQep
aEbjuAoSW/wZQDn/8qQIhsrg1jc+L280Qh1PY1udmMTZhUrijkO1
-----END RSA PRIVATE KEY-----

Public cert

-----BEGIN CERTIFICATE-----
MIIGKDCCBRCgAwIBAgIQDPM2aqTO5b54DhFedbNBbjANBgkqhkiG9w0BAQsFADBc
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMRswGQYDVQQDExJUaGF3dGUgUlNBIENBIDIwMTgwHhcN
MTgwOTEyMDAwMDAwWhcNMTkxMTE3MTIwMDAwWjCBmTELMAkGA1UEBhMCVVMxETAP
BgNVBAgTCFZpcmdpbmlhMRcwFQYDVQQHEw5UeXNvbidzIENvcm5lcjEcMBoGA1UE
ChMTTWljcm9TdHJhdGVneSwgSW5jLjEcMBoGA1UECxMTSW5mb3JtYXRpb24gU3lz
vo3WIr8Ja9XFqfg/GHzMYwjYG/jkzmdEV4fke3LkTaYFtblAvE3hU4UXZWnT1y4W
vXySQ7BvTxgxRTUIWRN+qPJK6UsmNU4HizBjktCjxq6xqBdE55jsda7hqDg=
-----END CERTIFICATE-----
"
                 Id = 147274
                 FieldId = 366
                 FieldName = "Notes"
                 IsFile = False
                 IsNotes = True
                 IsPassword = False
                 FieldDisplayName = "Notes"
              },
        }
     Id = 31346
     SecretTypeId = 6055
     FolderId = 586
     IsWebLauncher = False
     Active = True
     CheckOutMinutesRemaining = None
     IsCheckedOut = None
     CheckOutUserDisplayName = None
     CheckOutUserId = None
     IsOutOfSync = None
     IsRestricted = False
     OutOfSyncReason = None
  }
}

試試下面的正則表達式: (-----BEGIN .+?-----(?s).+?-----END .+?-----) 你可以在這里試一試。 這通過在開始和結束之后進行延遲匹配以及在兩者之間進行延遲匹配來實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM