Requests: рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░, рд╕реЗрдЯ REQUESTS_CA_BUNDLE env var, рдЕрднреА рднреА SSL рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдЬреБрд▓ре░ 2013  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рдореИрдВ рдЬреЗрдирдХрд┐рдВрд╕рдкреА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд╣реБрдб рдХреЗ рддрд╣рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЗрд╕реЗ рдЬреЗрдирдХреАрдВрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд╣реИ:

SSLError: [рддреНрд░реБрдЯрд┐ 1] _ssl.c: 504: рддреНрд░реБрдЯрд┐: 14090086 : SSL рд░реВрдЯреАрди: SSL3_GET_SERVER_CERTIFICATE : рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓

jenkinsapi рд╕рддреНрдпрд╛рдкрди = рдЧрд▓рдд рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реБрдХ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЬреЗрдирдХреАрдВрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП REQUESTS_CA_BUNDLE рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред рдореИрдВрдиреЗ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд▓рдЧрд╛рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬреЗрдирдХрд┐рдВрд╕рдкреА рдХреЛрдб рдХреЛ рд╣реИрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрддреЛрд╖рдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдХреЛрдб рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ ssl рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рд╡рд┐рдлрд▓ рд╕рдорд╕реНрдпрд╛, рд╕рдореАрдХреНрд╖рд╛ boto3 рдХреЛрдб рджреНрд╡рд╛рд░рд╛, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ REQUESTS_CA_BUNDLE рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдХреЗ рджреЛрдиреЛрдВ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛:

from boto3.session import Session
import os

# debian
os.environ['REQUESTS_CA_BUNDLE'] = os.path.join(
    '/etc/ssl/certs/',
    'ca-certificates.crt')
# centos
#   'ca-bundle.crt')

Aws-cli рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ~/.bashrc рдореЗрдВ REQUESTS_CA_BUNDLE рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧреА (рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ aws-cli рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)

REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt # ca-bundle.crt
export REQUESTS_CA_BUNDLE

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ? рдмрд╕ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкреЗрд╕реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдпреЗ рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рд╣реЗрдЬ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЪреАрдЬреЗрдВ рдЕрдм рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВред

рд▓рд╛рдирдд рд╣реИ! рдореИрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рдмреЛрд▓ рдЧрдпрд╛ред рдпрд╣рд╛рдБ рдкреНрд░рдорд╛рдг рд╣реИ:

-----рд╢реБрд░реБрдЖрдд рдкреНрд░рдорд╛рдгрдкрддреНрд░-----
MIIGQDCCBSigAwIBAgIKWQnHpQAAAAAIjANBgkqhkiG9w0BAQUFADBZMRMwEQYK
CZImiZPyLGQBGRYDY29tMRQwEgYKCZImiZPyLGQBGRYEZWJheTEUMBIGCgmSJomT
8ixkARkWBGNvcnAxFjAUBgNVBAMTDUFNRVITU1NMQ0EtMDIwHhcNMTIxMTE4MDUz
MTA4WhcNMTQxMTE4MDUzMTA4WjB1MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2Fs
aWZvcm5pYTERMA8GA1UEBxMIU2FuIEpvc2UxFDASBgNVBAoTC1BheVBhbCBJbmMu
MQwwCgYDVQQLEwNDRUkxGjAYBgNVBAMTEWZ1c2lvbi5wYXlwYWwuY29tMIIBIJAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwOZj4ezQ/k5vTU6E63uNsP+LZjeg
4kTEUwSzFsRj3NImQdfOrQ7W7S386ep2EZZqmjevO6HBzkaXaYYQ0GSqthdspd53
A8GnLi0q43oFy+kyAc2ItAM0SH/GOt0J+5EUdS12S821WMMiwebHIinSHINAjexAHN
Sm87yXCyO8mZ3Jzc3+PFraveF9WFmE0NLZUDpEMxq17K3/6iGLsVO/YZkUpaAXNJ
962fGrIZ4xcvK // S903ehloKwQnRCgtNoGCmvsoDftbYye6LfRh/rH3xWFXImWG
Wib27ZwAgbyxz2FPcexie4FB/IzbH2l9Tp5rzGWfs1159VmVhQ/L3EJIDQIDAQAB
o4IC7DCCAugwHQYDVR0OBBYEFMkZJD5QaahE21k37UvPIP1VmZ1SMB8GA1UdIwQY
MBAAFLI24M3s4ViBTJbTf1lWAEsUzehVMIIBDQYDVR0fBIIBBDCCAQAwgf2ggfqg
gfeGgb9sZGFwOi8vL0NOPUFNRVItU1NMQ0EtMDIsQ049QU1FUi1TU0xDQS0wMixD
Tj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049
Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWViYXksREM9Y29tP2NlcnRpZmljYXRl
UmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Q
b2ludIYzaHR0cDovL3BraS5jb3JwLmViYXkuY29tL0NlcnREYXRhL0FNRVItU1NM
Q0EtMDIuY3JsMIIBTgYIKwYBBQUHAQEEggFAMIIBPDCBsQYIKwYBBQUHMAKGgaRs
ZGFwOi8vL0NOPUFNRVItU1NMQ0EtMDIsQ049QUlBLENOPVB1YmxpYyUyMEtleSUy
MFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9Y29ycCxE
Qz1lYmF5LERDPWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2Vy
dGlmaWNhdGlvbkF1dGhvcml0eTBbBggrBgEFBQcwAoZPaHR0cDovL3BraS5jb3Jw
LmViYXkuY29tL0NlcnREYXRhL0FNRVItU1NMQ0EtMDIuY29ycC5lYmF5LmNvbV9B
TUVSLVNTTENBLTAyLmNydDApBggrBgEFBQcwAYYdaHR0cDovL3BraS5jb3JwLmVi
YXkuY29tL29jc3AwIQYJKwYBBAGCNxQCBBQeEgBXAGUAYgBTAGUacgB2AGUacjAL
BgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQAD
ggEBAFj5s9SdtRpXLz03BjPFsDvQPzoyML9ngHL5zyYMlotUpD7d+aO41Q2E2+LO
REfbd3NAnLT3MfWMHAxNaZ4TRUog1fFJmLJxHTBax5fpmY8YAhiPjQIO+IZOUZO3
4lAwXKsq4ylWS2tlbxL56mPngN2EzLisWgIZqJSx9zd1K/LvKyvs/R3wxBerhTN5
LyHFf9/ByUhaqgIE8jydM4qiS8o3zxjrPAIbi6lnZjktkguYTSAKDoHb17BkNoPr
mU1xDtD1/FuX22dfHpqmJSYVubPVfUTvGB3julT2GNNREoHsQI7wmgFBEMaTdvJq
42DUnHIK0pdMzb2urxL/toZ3mHY=
-----рдЕрдВрдд рдкреНрд░рдорд╛рдгрдкрддреНрд░-----

рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "goals.py", рдкрдВрдХреНрддрд┐ 3, in
рдЬреЗ = рдПрдкреАрдЖрдИред рдЬреЗрдирдХрд┐рдВрд╕ ('https://fusion.[REDACTED].com/jenkins/')
рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\jenkinsapi\jenkins.py", рд▓рд╛рдЗрди 35, init рдореЗрдВ
рдЬреЗрдирдХрд┐рдВрд╕рдмреЗрд╕ред init (рд╕реНрд╡рдпрдВ, рдмреЗрд╕реБрд░реНрд▓)
рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\jenkinsapi\jenkinsbase.py", рд▓рд╛рдЗрди 27, init рдореЗрдВ
рд╕реНрд╡.рдорддрджрд╛рди ()
рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\jenkinsapi\jenkinsbase.py", рд▓рд╛рдЗрди 49, рдкреЛрд▓ рдореЗрдВ
рд╕реНрд╡рдпрдВ._рдбреЗрдЯрд╛ = рд╕реНрд╡рдпрдВ._рдкреЛрд▓ ()
рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\jenkinsapi\jenkinsbase.py", рд▓рд╛рдЗрди 53, _poll рдореЗрдВ
рд╡рд╛рдкрд╕реА self.get_data(url)
рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\jenkinsapi\jenkinsbase.py", рд▓рд╛рдЗрди 57, get_data рдореЗрдВ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ = requester.get_url (url)
рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\jenkinsapi\utils\requester.py", рд▓рд╛рдЗрди 59, get_url рдореЗрдВ
рд╡рд╛рдкрд╕реА рдЕрдиреБрд░реЛрдзред рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдпреВрдЖрд░рдПрд▓, _requestKwargs)рдлрд╝рд╛рдЗрд▓ "рд╕реА: \ рдкрд╛рдпрдерди 27 \ lib \ рд╕рд╛рдЗрдЯ-рдкреИрдХреЗрдЬ \ рдЕрдиреБрд░реЛрдз \ api.py", рд▓рд╛рдЗрди 55, рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВрд╡рд╛рдкрд╕реА рдЕрдиреБрд░реЛрдз ('рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ', url, *_kwargs)рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\requests\api.py", рд▓рд╛рдЗрди 44, рдЕрдиреБрд░реЛрдз рдореЗрдВрд╡рд╛рдкрд╕реА рд╕рддреНрд░ред рдЕрдиреБрд░реЛрдз (рд╡рд┐рдзрд┐ = рд╡рд┐рдзрд┐, url = url, *_kwargs)рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\requests\sessions.py", рд▓рд╛рдЗрди 335, рдЕрдиреБрд░реЛрдз рдореЗрдВрд╕рдореНрдорд╛рди = рд╕реНрд╡рдпрдВ рднреЗрдЬреЗрдВ (рддреИрдпрд╛рд░реА рдХрд░реЗрдВ, *_send_kwargs)рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\Requests\sessions.py", рд▓рд╛рдЗрди 438, рднреЗрдЬрдиреЗ рдореЗрдВрдЖрд░ = рдПрдбреЗрдкреНрдЯрд░ред рднреЗрдЬреЗрдВ (рдЕрдиреБрд░реЛрдз, * kwargs)
рдлрд╝рд╛рдЗрд▓ "C:\python27\lib\site-packages\requests\Adapters.py", рд▓рд╛рдЗрди 331, рднреЗрдЬрдиреЗ рдореЗрдВ
SSLError (рдИ) рдмрдврд╝рд╛рдПрдБ
рдЕрдиреБрд░реЛрдзред рдЕрдкрд╡рд╛рдж ред рдПрд╕рдПрд╕рдПрд▓ рддреНрд░реБрдЯрд┐: 14090086 : рдПрд╕рдПрд╕рдПрд▓ рджрд┐рдирдЪрд░реНрдпрд╛: рдПрд╕рдПрд╕рдПрд▓

рдХреНрдпрд╛ рдЖрдк рдЬреЗрдирдХрд┐рдиреНрд╕рдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдЖрдк рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред

r=requests.get(url,verify=certfile)

SSLError: [рддреНрд░реБрдЯрд┐ 1] _ssl.c: 504: рддреНрд░реБрдЯрд┐: 14090086 : SSL рд░реВрдЯреАрди: SSL3_GET_SERVER_CERTIFICATE : рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓

r=requests.get(url,cert=certfile)

SSLError: [Errno 336265225] _ssl.c:351: рддреНрд░реБрдЯрд┐: 140B0009 : SSL рд░реВрдЯреАрди: SSL_CTX_use_PrivateKey_file : PEM lib

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдирд┐рдЬреА рдХреБрдВрдЬреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП? рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рд▓рд┐рдХ рдореБрдЭреЗ рдпрд╣ рдХрд░рдиреЗ рджреЗрдВрдЧреЗред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ - рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ "рдкреНрд░рдорд╛рдгрдкрддреНрд░" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрд╡рдпрдВ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рд╣реИ :-)
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реАрдП рд╕реЗ рд╣реИ рди рдХрд┐ рд╕рд░реНрд╡рд░ рд╕реЗ: рдХреНрдпрд╛ рдЬреЛрд░ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ?
рдЖрдкрдХреЛ рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдерд╛ред
рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдВрддрд┐рдо рддрддреНрд╡ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХреЗрд╡рд▓ рд░реВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рд╣реИред
рдЖрдкрдХреЛ рдЕрднреА рднреА рдЬрдбрд╝ рдФрд░ рдкрддреНрддреА рдХреЗ рдмреАрдЪ рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдпрд╛ рддреЛ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд▓реАрдл рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдлрд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзрдиреНрдпрд╡рд╛рдж - рдореБрдЭреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдпрд╣ рдХрд╛рдо рдорд┐рд▓ рдЧрдпрд╛! рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрджрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реИ: рдореБрдЭреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рд░реВрдЯ рдореЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдмреЗрд╕ 64 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рд╣реИ, рдлрд┐рд░ рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░реЗрдВ рдЪрд░ REQUESTS_CA_BUNDLE рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!

рдЕрдиреНрдп рдЧреЛрдЧрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП - рдЖрдк рдЬреЗрдирдХрд┐рдВрд╕рдкреА рдореЗрдВ рдПрд╕рдПрд╕рдПрд▓ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

from jenkinsapi.jenkins import Jenkins
from jenkinsapi.utils.requester import Requester

j = Jenkins(base_url, requester=Requester(username, password, baseurl=base_url, ssl_verify=False))

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ ssl рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рд╡рд┐рдлрд▓ рд╕рдорд╕реНрдпрд╛, рд╕рдореАрдХреНрд╖рд╛ boto3 рдХреЛрдб рджреНрд╡рд╛рд░рд╛, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ REQUESTS_CA_BUNDLE рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдХреЗ рджреЛрдиреЛрдВ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛:

from boto3.session import Session
import os

# debian
os.environ['REQUESTS_CA_BUNDLE'] = os.path.join(
    '/etc/ssl/certs/',
    'ca-certificates.crt')
# centos
#   'ca-bundle.crt')

Aws-cli рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ~/.bashrc рдореЗрдВ REQUESTS_CA_BUNDLE рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧреА (рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ aws-cli рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)

REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt # ca-bundle.crt
export REQUESTS_CA_BUNDLE
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

eromoe picture eromoe  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Matt3o12 picture Matt3o12  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

avinassh picture avinassh  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jakul picture jakul  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

8key picture 8key  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ