@@ -30,60 +30,57 @@ import (
30
30
31
31
// The TLS certificates below were generated using:
32
32
//
33
- // openssl req -new -x509 -newkey rsa:2048 -days 36500 -keyout key.pem -out cert.pem -nodes
33
+ // openssl req -new -x509 -newkey rsa:2048 -days 36500 -keyout key.pem -out cert.pem -nodes -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost"
34
34
//
35
35
// and are used for testing only. Do not use in production.
36
36
37
37
var certPem = []byte (`-----BEGIN CERTIFICATE-----
38
- MIIDlTCCAn2gAwIBAgIUISO9AdBzEIxv366ruyRniPVrA8AwDQYJKoZIhvcNAQEL
39
- BQAwWTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
40
- GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDESMBAGA1UEAwwJbG9jYWxob3N0MCAX
41
- DTIwMDExNDE4NTY0OVoYDzIxMTkxMjIxMTg1NjQ5WjBZMQswCQYDVQQGEwJBVTET
42
- MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
43
- dHkgTHRkMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IB
44
- DwAwggEKAoIBAQDdF183r5B4ZeM677SYQrf7JWc26eBN60mqOSC18aeRxkeQsgO4
45
- X3Y7wpQRcVdsm/i291otNIOWm4mJLLJFVE87Yq65gH4O4MHxQNlhZ0Bf1J8WsbsF
46
- RHk3LF2rhUBll6cG+Z1OX7mCtmM33znXDFxTf3/DZ5XgeleNG98umeUMg8rHgj2y
47
- UB4nwoMbeJIjk7e5tBQKCCNOYM1Mda1wzrvxo3blXsIFzpxLqQ+tVnYuql9CYjX1
48
- 69Nwq+Dsgv6zNWzWMlPTPAKdbOVVvXV2hfQ3LmnuzCv9t/TUdwkdyUMDUkbF+T8v
49
- eD5bMP3k8lYuaNu0YQmbgbKvklK7voaEFte9AgMBAAGjUzBRMB0GA1UdDgQWBBTO
50
- 3ItCZrqn4cPtvGiVT1BQ+gzZhDAfBgNVHSMEGDAWgBTO3ItCZrqn4cPtvGiVT1BQ
51
- +gzZhDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCGSvX5vN2F
52
- siW23KnlurUtNiSoPzwSOwRGzaPcQYc1rdTXfN0F3Hj4qRnVJ+9jl3z6/xQnrgzg
53
- iQ+4bZcnJeebmPI0jMZZXDXdDnp/Ze4klELpG53DzVzGZ7FvENmfNFIEIx6hrT2K
54
- TDrWfZomjYu4Tn5rGAA4TflA9u8AWHYcZDLtjiwuHNFJLY6PdZSJU+OaPJXztRDV
55
- jg/KVCsPH5LLxZy1U175YbWN7nIDvG2/H7o2vQdBs9A8lJ8CEGr2/jXTl8GDyOYN
56
- 6uHPipr8Y2rvh/jY8HalYo3x5gXM7AJk4OBh6x/Fcw6L0BmUHrUYvaU8UbwjraKF
57
- PISX1spqbI8a
38
+ MIIDITCCAgmgAwIBAgIURF9ueWPW7wLSODqDuGMxFrVQIdYwDQYJKoZIhvcNAQEL
39
+ BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MCAXDTIxMDMyNTE1MjkwOFoYDzIxMjEw
40
+ MzAxMTUyOTA4WjAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEB
41
+ AQUAA4IBDwAwggEKAoIBAQCb8iDrB27cKi4ObbPAth3gybv4d8baWa03RwgM9k7m
42
+ mG6cHD3ZKZykiMZhtn0QrmIzx+pUU7J3lCkYcpBuPREYtNjlwo17Btr0/B3duVeT
43
+ jA7hb2HZbL3h2mUeTArS0ljoJ+6qhdjBTeDE5isc/favceK/4p5Q6mLU7x1udeyP
44
+ RGY8p+zkzZ0u62YMVuuaz9NWAJ3wAhC29ci+8Ub7oJBP01Lk15yZlkipSRpKGixq
45
+ gcLZQtCQpCmZP8cIwvYPc8xvxMq0cl78tyr+AD+6jZo1wEgyS5l/gPgTjlTwVDn/
46
+ 1mRZBXiwP2Mza/SkTk5JwlapFAuZ3J7mTCbmsHawtb8JAgMBAAGjaTBnMB0GA1Ud
47
+ DgQWBBQIoEPhVqkC4kjoMJnIz57YZHHbxTAfBgNVHSMEGDAWgBQIoEPhVqkC4kjo
48
+ MJnIz57YZHHbxTAPBgNVHRMBAf8EBTADAQH/MBQGA1UdEQQNMAuCCWxvY2FsaG9z
49
+ dDANBgkqhkiG9w0BAQsFAAOCAQEAeP43p+fc1IrDAdVb0l8Wt5NexPae+Xqigxm0
50
+ vfR74lokSWvGeFtXH1nX1bsfvC5ydwS7x1+j5iZsC5x1w0pXSbp9n/go6VOPhpLH
51
+ BfzlJrNxHxwd3R12B18tyE0Bn6NcXTr4xgAZOgRSXigQnkt+6nO6sa3EpH8C/Bm0
52
+ xFOSIvJzQr8ksqEvZnFS4TFNRt+Un/SfbYfIxn1U9YPeXswZg+c3RKCrtqAUULOb
53
+ 6+zR6Qml1TTuQFWRmpY++j0HC/0YCaeACLgQF7b3Hy21j6kFe1uFhnZgRYO+tpS4
54
+ DWWJnuh3aXY43/Fz32Srdl7RWgw7Y6j4LGKgF4n07h7qcsdp+g==
58
55
-----END CERTIFICATE-----` )
59
56
60
57
var keyPem = []byte (`-----BEGIN PRIVATE KEY-----
61
- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDdF183r5B4ZeM6
62
- 77SYQrf7JWc26eBN60mqOSC18aeRxkeQsgO4X3Y7wpQRcVdsm/i291otNIOWm4mJ
63
- LLJFVE87Yq65gH4O4MHxQNlhZ0Bf1J8WsbsFRHk3LF2rhUBll6cG+Z1OX7mCtmM3
64
- 3znXDFxTf3/DZ5XgeleNG98umeUMg8rHgj2yUB4nwoMbeJIjk7e5tBQKCCNOYM1M
65
- da1wzrvxo3blXsIFzpxLqQ+tVnYuql9CYjX169Nwq+Dsgv6zNWzWMlPTPAKdbOVV
66
- vXV2hfQ3LmnuzCv9t/TUdwkdyUMDUkbF+T8veD5bMP3k8lYuaNu0YQmbgbKvklK7
67
- voaEFte9AgMBAAECggEBAK18w4jMyQ7Q1KfQpOO9puT6Cq36g7pg4OMkBNkAkT9A
68
- WbPfHDA3KG3oV4wAZluhYF8iZa6HQKKT1i6/1fu1Fp9A5l5Fx6UhFM6c1ncqMEeC
69
- bnu+Z0TQ4FU9CRuoaknN4JEGmjt/vfAl8mFLVvW6i1AyAi1xQRhup/jgYBcPR76y
70
- zcmgdyaDNX/Z4rPAIzPTJbEjPhV8L3J8SjM6CML9k03QA6GALyVIJwUOUy/qJtYL
71
- 9UrUFwE+jjbifWjIpNjdKPFi6ltgSk9cOQZXcKWw+0CBJ5q3cZ6m6faqnWyDMHqP
72
- garQd8bHzxG5yrVqrYiP8Mv2vD+cham8Nl2frJsK4cECgYEA/yR5rTpaFkZ9fV12
73
- /r/KLapClg9R6COwBWk5nPvGde7rLMPVg2sQgyzfj7fRvZiQDx9zjmn96LJX+uwr
74
- do88rWFUCmq5S/G0p1UD3DEW1b/YcN5D/nnG0QjeP0PSmG4Aj/SxDUD8AX1zwCpn
75
- /G7dJame4A45tW3oxlGDMUPIwHkCgYEA3dWZV2VIHk5Aa4PJ92iTCtIPQnVb7140
76
- WL2cCmsvIWe/UkHvHJZYcgB78OOuNET3ijI83rx/Ry2iBapKnuHxbl8npOw+8btZ
77
- GakR0Htbns/sOqfb1jruen6kw+HTZaYYYEckHw8DiARLc4PlC6WSsYhL8W2Jl+SD
78
- mwBb4NJQKGUCgYBGcR2e9BNXPxL6f8mQwAbj4LQNliE5BFFezRR5ARJkERig/Vh/
79
- thmS/dqjZU7lF6/+XOKcmSrfCg48WuQNEbLg85QuZBTQoOUNpe0w5+S0EwmA7/y5
80
- z4lSwS4LLYCBUS2akSYo0J5DEw3YKl0XVsx7z37rwUGxk6zGxE6CVYKhkQKBgGGh
81
- PyJqjcngsJNg5gM//+70MgkSs4pukGU51bH0KELwcRBXuk9/j59kvSdwXNveOn+U
82
- yptQpEeEOtl5b+vrDqF/uWfpHW6wAG+9q/xwPgtwAMxz0dnAB/LbR9J50drbtcCx
83
- rqEIr4ouMbK+KpDsptoBXUL87WBvDsip6MXSabrNAoGBAKKjpwZXPBUfjRMEWSrv
84
- AQLrBifzWHi6NbC+yFxdbaidzOzOLfxMXUKW8MRWK9Wsqza1r/bubbVTakzzFuZa
85
- sxjcfOmE0/ArjIxeMLVvaXbY1hCgwdplJf0JyksidT7njIkXL+vFwq6VD5R+JCC8
86
- MqcOXU7V6srirJOObsIHyC/i
58
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCb8iDrB27cKi4O
59
+ bbPAth3gybv4d8baWa03RwgM9k7mmG6cHD3ZKZykiMZhtn0QrmIzx+pUU7J3lCkY
60
+ cpBuPREYtNjlwo17Btr0/B3duVeTjA7hb2HZbL3h2mUeTArS0ljoJ+6qhdjBTeDE
61
+ 5isc/favceK/4p5Q6mLU7x1udeyPRGY8p+zkzZ0u62YMVuuaz9NWAJ3wAhC29ci+
62
+ 8Ub7oJBP01Lk15yZlkipSRpKGixqgcLZQtCQpCmZP8cIwvYPc8xvxMq0cl78tyr+
63
+ AD+6jZo1wEgyS5l/gPgTjlTwVDn/1mRZBXiwP2Mza/SkTk5JwlapFAuZ3J7mTCbm
64
+ sHawtb8JAgMBAAECggEANGCy5b3tYk1Ygsgd49BHYMThOachRx1vrG1TKudfwNvZ
65
+ 6t0heNsdHbZCy3b7sqqfmTzAW+pwuvEsjGWOVTh1kZLMdv9NfdDjof08GsixvYEB
66
+ Tn6Woux/KmisJezshbrY2cDvzJ6AGw0JPZkBSg+S14Ks4j4/ZnYTE+nsPLmm5sdQ
67
+ RxLyVFhENzb7Rc5ILoLNQse1XaP+tBM7zh2NKEDuZgf8Upylom8g9XhHQDfLGxUv
68
+ JY0l4ytOCAbtxaVLv4uFqDUJ8SToQoVYEZVJ+bET5frIdKhiTKSDMbHyATFjiKug
69
+ Ebd7jHSE7z5XL7naQdcO50Fwna63+c8vcaHZeHyswQKBgQDIXoTMkL1Gc/dSxN7q
70
+ UpIpXOMQdpxdqPND4wMzfnBoXbCCLwhCKfzv2I5FpwceuWVVcRMrE566eA8fl+6k
71
+ pdoFWesMa9IRKfzIVovx8ok+wXSCUXhMCmFWcC/eQI94UNcwDxJU9QVcmW+oeLc+
72
+ H3s/Umr/Aa/d5hpqvsJOdCYYdQKBgQDHPinm4mKUbASnb7yxKlcc880GUVPg1GU8
73
+ aWG7xxWP7idwnbOICUrf5xdxlwlug2DhBio1yjsOy1luZoNDiixZNURLudKrPfwW
74
+ j0tq9hU5vPnGuNrZ19pdaf8Z17Ca3KSTFMhTjgIjlhYWgjLKEB485ltctlPbpo9R
75
+ nZCFzsuZxQKBgQCSqr1CkGA8Bf7wEzOpCi/7HwcGsgvbcyQ+eRmKw+68NnhRkuPU
76
+ qq9/UWEzEwRfNQ478L07Nu1lSSSo16nT06M3b45iVTo7XiSu8MsXm5Vi3nDOQ5xu
77
+ 7No7T3t6kH90bphVkXK1xXTbR2U4SMS5MIoi281+RFnbb+e+Y0wP6W1JUQKBgQCF
78
+ yQIN3JlhHB8L5wWG2O1hrXtP8LAn2baYmBJeKlIaMUoeXmY8xDCYo+2kAkz8/g7B
79
+ SohxUffR+U11yjP91/vrcs8HIiGJhreM1m9HxTF/cZsuitW5TS19aD05NxGJCvsf
80
+ H+db45EgIBl4x7ge4i/LqMpUOMGaTf8SSIDQuIkSGQKBgDdF7tfXbJ6E8EdD3EMW
81
+ norwTQAFKoAyJlF7BUEVgjyZt1GKkbOZirO4QjtTgZk55TpesXpTcbN5Fl4I0Zll
82
+ QdhDNHP01pJ/E6AEfTWFnZGR0kzywhS8sPKjXGYgFXM05i9Fu4jaSKkkb3eCiW+V
83
+ w5EChlKjaj2TFOdi/2jHhMxF
87
84
-----END PRIVATE KEY-----` )
88
85
89
86
func setupGRPCServerWithTLS (mutual bool ) (* grpc.Server , int , error ) {
0 commit comments