From 778c0a282724fff310e55c0490411c1f15ce0885 Mon Sep 17 00:00:00 2001 From: zefie Date: Mon, 4 May 2026 14:01:11 -0400 Subject: [PATCH] new ssl --- .../msntv2/{msntv2.crt => emac.crt} | 0 .../msntv2/{msntv2.key => emac.key} | 0 .../includes/ServiceDeps/msntv2/minisrv.crt | 27 ++++++++ .../includes/ServiceDeps/msntv2/minisrv.key | 27 ++++++++ .../ServiceDeps/msntv2/msn_domains.crt | 29 -------- .../ServiceDeps/msntv2/msn_domains.key | 27 -------- .../ServiceDeps/msntv2/msn_domains.txt | 17 ----- .../includes/ServiceDeps/msntv2/msntv2.dhp | 5 -- .../includes/classes/WTV-MSNTV2.js | 45 +++--------- zefie_wtvp_minisrv/includes/config.json | 4 ++ .../tools/generate_msn_san_cert.js | 68 +++++++------------ .../includes/ServiceDeps/msntv2/minisrv.crt | 28 ++++++++ .../includes/ServiceDeps/msntv2/minisrv.key | 27 ++++++++ 13 files changed, 147 insertions(+), 157 deletions(-) rename zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/{msntv2.crt => emac.crt} (100%) rename zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/{msntv2.key => emac.key} (100%) create mode 100644 zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/minisrv.crt create mode 100644 zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/minisrv.key delete mode 100644 zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.crt delete mode 100644 zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.key delete mode 100644 zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.txt delete mode 100644 zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msntv2.dhp create mode 100644 zefie_wtvp_minisrv/tools/includes/ServiceDeps/msntv2/minisrv.crt create mode 100644 zefie_wtvp_minisrv/tools/includes/ServiceDeps/msntv2/minisrv.key diff --git a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msntv2.crt b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/emac.crt similarity index 100% rename from zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msntv2.crt rename to zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/emac.crt diff --git a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msntv2.key b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/emac.key similarity index 100% rename from zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msntv2.key rename to zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/emac.key diff --git a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/minisrv.crt b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/minisrv.crt new file mode 100644 index 00000000..248fa9e7 --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/minisrv.crt @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE----- +MIIEqzCCA5OgAwIBAgIQ3Zq6hcFrpKh4v3/G9sTw3DANBgkqhkiG9w0BAQUFADBw +MQswCQYDVQQGEwJVUzELMAkGA1UECAwCT0gxEzARBgNVBAcMCkJ1dHQgQ3JhY2sx +IDAeBgNVBAoMF1VuZGVyd2VhciBJbnNwZWN0b3IgIzEyMR0wGwYDVQQLDBRUaGlu +ZyBMb29rZXIgRXhwZXJ0czAgFw0wMDAxMDExMjAwMDBaGA8yMDk5MTIzMTIzNTk1 +OVowUTEpMCcGA1UEAxMgaGVhZHdhaXRlci50cnVzdGVkLm1zbnR2Lm1zbi5jb20x +FzAVBgNVBAoTDlplZmllIE5ldHdvcmtzMQswCQYDVQQGEwJVUzCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMtl9J068AFSHykffAlcpspq3D7mE7fFRoyf ++tQCM3Wy7PqJvDAegoI4Zf/QdToTJMS6dkcsEx+dgD01VKJ1B0RdHbg6rFQfymc4 +GKyNk6tuqp7YQqElCUc91oFz4pJaJaOYaNBqkAG3MfTg+tSoBXl2YyjPrT0TPhXX +1Cm7BuFZORqNhvTdf33QXzgCQVso9U5X9YBgDaiTcu55etjFKUBEYhSYwTHmennA +FWOjY7ux6HFXBfKAz1QeCE6+corl5+6srCfh7Uz3ZFV9vntEYnyzbJuo6gR5P7GI +IYsygkADQAETHivl6GxeB7SEUfYLnfrZFwZc235tUz7USBdg3gcCAwEAAaOCAVww +ggFYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMB +MIIBJwYDVR0RBIIBHjCCARqCIGhlYWR3YWl0ZXIudHJ1c3RlZC5tc250di5tc24u +Y29tghcqLnRydXN0ZWQubXNudHYubXNuLmNvbYINbXNudHYubXNuLmNvbYIWbWFp +bC5zZXJ2aWNlcy5saXZlLmNvbYIObG9naW4ubGl2ZS5jb22CEXBvcHRpbWl6ZS5t +c24uY29tghFmYXZvcml0ZXMubXNuLmNvbYIRbWVzc2VuZ2VyLm1zbi5jb22CEWxp +dmVmaWxlc3RvcmUuY29tghZ1c2Vycy5zdG9yYWdlLmxpdmUuY29tgglnLm1zbi5j +b22CF21zbmlhbG9naW4ucGFzc3BvcnQuY29tgg1taW5pc3J2LmxvY2Fsgg8qLm1p +bmlzcnYubG9jYWwwDQYJKoZIhvcNAQEFBQADggEBAAGEINTBTrkbpO0CJPv9w4Nj +IMuOSZETA7uXWyPwoLBIa57yTjNEVvWmjAc2nnrI3D6ijLMiF1eDIEsP4DI/qfMs +J82cS/IOIxXCmReU132NaZ6mSNEZx9QDkz/R8rFq5jKPRYSeguZSsWDxYlaQsbRr +qxQsKkRIOpm5pIOA/UT2gwV0L84a/NHXHNfc+CnPvvy7R9kmUC0XynsqU3lkj4Ah +SNZOgYyWkGWW7AytQWnMxyWm+xQjG4Fwl1Os9en4qwCK0ADyMCQyG3O68Gffu2go +YciXaJquI52fEKDQV4mDxy4B1V8BQ3ywm1iGebLzLgrKK7xPucUU5fqz7v2IUIs= +-----END CERTIFICATE----- diff --git a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/minisrv.key b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/minisrv.key new file mode 100644 index 00000000..e768f45b --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/minisrv.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAy2X0nTrwAVIfKR98CVymymrcPuYTt8VGjJ/61AIzdbLs+om8 +MB6Cgjhl/9B1OhMkxLp2RywTH52APTVUonUHRF0duDqsVB/KZzgYrI2Tq26qnthC +oSUJRz3WgXPiklolo5ho0GqQAbcx9OD61KgFeXZjKM+tPRM+FdfUKbsG4Vk5Go2G +9N1/fdBfOAJBWyj1Tlf1gGANqJNy7nl62MUpQERiFJjBMeZ6ecAVY6Nju7HocVcF +8oDPVB4ITr5yiuXn7qysJ+HtTPdkVX2+e0RifLNsm6jqBHk/sYghizKCQANAARMe +K+XobF4HtIRR9gud+tkXBlzbfm1TPtRIF2DeBwIDAQABAoIBAADoPGfDhQfq4IyA +gVjRvhHmDLbTgOACp1aZbUPeNKUmpKVWniCOA+GZZ2V1ZEIOwGaH0sVtF8xXmZeF +5UUKOS7GLL7b6CJB6z2vNt3CJ35av03d3UI2iSzCEYxadd0jcMqJGfwsyLKkdgd6 +rDO5m7ikdtT0qpGjEQi46AKkCZseSdIZqtgm1t0NupbXuBKbR13N6iNOr6eVnEpZ +tTrwIvw/OZ3Wf9tVW0DzjB1ejUYXCYAd6mHskMRrNfu/11x2pyXMHOSl24sVZxHe +Dxe+cYjw61/5pMMBq6ZQ61SPvAWZbIOA/PINHIUjisIGxpeqluz0zb+SLLrZnBe5 +i9WEHsUCgYEA5lKEc5w02/n9+6wZCK/sPWhNJF3cPw2E0O+kqHPWLx2qPNhKf2Zh +8RycdVCnCcEXVQedYnNpBeAktMNGxAR9IhiVhfwiG0dFYXNUHBIHgVBZqtOeW8sS +uy4/fOw/qCCLWDfnDaozj8RnKsvu6zLm4c73Q4FEr4R6rk4EjfsGA90CgYEA4hMD +9PBdIWAYapP2FRangOmP50YNQVznrmDsfFlm2vh3aFrx83f0IFjYxeUI7OdTjkk3 +7m5pEeV/liQwB/D7uXF+gNoUQab61QRhuKd58TbQELJkeBwevUb3rWVZ3LiFNNVB +vcunKTsL4qEADw56qMaczuZ27xXwatgUVtOdbTMCgYAmOA0ojgQreIlPyNgCnAas +jfE3Fqgkgl7GuO1u0oH5IYgNPqrmBxw7gU7pHLALK1Ju1qukGZiU1APjRwAoKMKG +9ONi71rNgf8eU5/iZI+AQtAOS71caA88pkj8tss9X+Efi2840kRqF+IytNJ5juHH +GKvpNLssEOS2pdWVpdDytQKBgF47WNne2qLPwD2kYN1XbQhh0lavL1VAWV2pDsmi +Jio9iOAZkGJQbJSTFAAgwICmx4A2arbalLcd9vlpKhAVVYdtlDI3NFxNMp5ZzjW+ +sShnFYDwKsqZxgJVM2W2KifDTdrAzT9ERO/9qa2UOEcOXPg+mRvwmkB735NZb9jl +KehbAoGBANXDltYtJh28hMopP2sZUEx/4A2fnGjVMxBmpSsrk6irz5u/wdhimlDP ++JHZZXrb/OTU2BjCPjCCOj953XUqsCpBvWgGdX8uab0O4Gg8x8ucu/K6/kp0X0jN +EWQYaMAXJlLQM+k7bXrABNIGu8BF3JzC9oYjlKiFpLqNOQpfHdbK +-----END RSA PRIVATE KEY----- diff --git a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.crt b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.crt deleted file mode 100644 index 171d1a38..00000000 --- a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.crt +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFCzCCA/OgAwIBAgIQdCYWD0et5QHOJ3OYuF0r2TANBgkqhkiG9w0BAQUFADBw -MQswCQYDVQQGEwJVUzELMAkGA1UECAwCT0gxEzARBgNVBAcMCkJ1dHQgQ3JhY2sx -IDAeBgNVBAoMF1VuZGVyd2VhciBJbnNwZWN0b3IgIzEyMR0wGwYDVQQLDBRUaGlu -ZyBMb29rZXIgRXhwZXJ0czAeFw0yNjA1MDEwMjMzMDhaFw00MTA0MjgwMjMzMDha -MFExKTAnBgNVBAMTIGhlYWR3YWl0ZXIudHJ1c3RlZC5tc250di5tc24uY29tMRcw -FQYDVQQKEw5aZWZpZSBOZXR3b3JrczELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCpSe+Vpv9qwb5aDgMNfWRTeXAGvTzhP+olLX+J -2WczAXr4FUSLE4LPyD43se26u4GBvGmKD9512/GZKCtMbKPmfBdIqeq/CF2gx8xh -e55qF8OuOdxMukOLXsTmvf4slwp3/N6gyze/PMmX+ku/gbotwPL0sv/9Vf1+PVTY -6Fje2EU0ra6xJADeL9gazdl6QBxiJ+py+49SiZMS8N4MICOfklykENmjDoM211W6 -mIRgRZebxijNiZNFeWeXzjxzAAWi701TDs8ksNHSRBG2pajDZ+XgB8D1T+yXWbPz -zylePg6HlG8n+asd43wakF8aER26eCT5hyCb4+SkkRClRXLHAgMBAAGjggG+MIIB -ujAJBgNVHRMEAjAAMAsGA1UdDwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATCC -AYkGA1UdEQSCAYAwggF8giBoZWFkd2FpdGVyLnRydXN0ZWQubXNudHYubXNuLmNv -bYIZc2cxLnRydXN0ZWQubXNudHYubXNuLmNvbYIZc2cyLnRydXN0ZWQubXNudHYu -bXNuLmNvbYIZc2czLnRydXN0ZWQubXNudHYubXNuLmNvbYIZc2c0LnRydXN0ZWQu -bXNudHYubXNuLmNvbYINbXNudHYubXNuLmNvbYIWbWFpbC5zZXJ2aWNlcy5saXZl -LmNvbYIec3luYy1zZzEudHJ1c3RlZC5tc250di5tc24uY29tgg5sb2dpbi5saXZl -LmNvbYIRcG9wdGltaXplLm1zbi5jb22CEWZhdm9yaXRlcy5tc24uY29tghFtZXNz -ZW5nZXIubXNuLmNvbYIRbGl2ZWZpbGVzdG9yZS5jb22CFnVzZXJzLnN0b3JhZ2Uu -bGl2ZS5jb22CCWcubXNuLmNvbYIXbXNuaWFsb2dpbi5wYXNzcG9ydC5jb22CDW1p -bmlzcnYubG9jYWwwDQYJKoZIhvcNAQEFBQADggEBAD9O6j8bWtsX9OGf0kT3u1dy -n6F+MQWX+vI4C9131Nso7cf7/+FyPcg17ewKw1MJ33ZpzCqhupAnN1lZPikGnl+t -VacegsqI2mX1ycD11s1EleobHLc28uEQHDd79Dwn6fA2/EOijyqsILJHB6kzLjH6 -DV/sapv4JtNMlKDjfHDhtiI2jtpYTfkoZqjs7WsNmaJBcJ/NgTtl3hFSMiN/MLQ0 -O9wyrvNheINIJ01trpcgLDpmwCG0lYoa8AOdRZccl0KR7IsdVBcV1ANFguepQXI5 -dc/VJcFWsYs0puGdhPPZHgiZV4pzmfU+rCM/AoNxDdRBrVSal6Um5YyhlmFtobA= ------END CERTIFICATE----- diff --git a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.key b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.key deleted file mode 100644 index 24fd683e..00000000 --- a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAqUnvlab/asG+Wg4DDX1kU3lwBr084T/qJS1/idlnMwF6+BVE -ixOCz8g+N7HturuBgbxpig/eddvxmSgrTGyj5nwXSKnqvwhdoMfMYXueahfDrjnc -TLpDi17E5r3+LJcKd/zeoMs3vzzJl/pLv4G6LcDy9LL//VX9fj1U2OhY3thFNK2u -sSQA3i/YGs3ZekAcYifqcvuPUomTEvDeDCAjn5JcpBDZow6DNtdVupiEYEWXm8Yo -zYmTRXlnl848cwAFou9NUw7PJLDR0kQRtqWow2fl4AfA9U/sl1mz888pXj4Oh5Rv -J/mrHeN8GpBfGhEdungk+Ycgm+PkpJEQpUVyxwIDAQABAoIBAAeA8Rr4Irs/wtqU -17BXv20LyGXG+74z3oKu/iTFKfyYnAUfDaouqB+z0z4tG+yo/B3XIK0BC8sY3NpD -EKPkkfi19B0qD0xnUON5LA//j0l4lI3dtrHpaSJ9nRCvatuANa2sOPzqIiZDVYLB -Y8qCkP+yLqn71HSY81dUl4Zgsznr7w0VGXLzJd3nUKYL/FRVpsBPy7uHsUemB8YO -mgGIVg7l7SpVX/tzZFnoQyPeiABv3hHTWoquxQfT9fqGQEm66cmzQP8yefaVvw1l -Eiikx/QWX2SsXfqXdMmiQUI/y+1WV2XL955e9BFzlH6HrePaj9CIrP3+HLtw1fMZ -It20WqECgYEA6FWcM2auqqVWrbee8oaoUT/XlQH8TZndlbWGSsFcQZptVTyB+ZMf -DyDBAAh18ix7XVEtm6+2pioBZtou5Vp/RjWM1OI3f0mvVgVi2zFIIy52WrWxTHiv -OSZpAv3NZEoiq/K3InrF3RolVklfQFv9TJBLmfNfTVtuEd47eBiLZckCgYEAuohW -n0pPQhnBb1OiDv82GfyUVORVX4zcjvFGnTbqHiyH1l3+KNBtWQ2Wy5TsBifhXk5h -TbGydO4RePeCaUBf4QFtABFsGH+et7Ci5ALvZBTLbCouvZRcDINnKsF0Wd1ZP9TW -F7ToN6q3vkhbHIpY59Il96Ije7F6CwV7SQR0nA8CgYBcgzpffVOvv4Z0RdmU2OnM -8I73VoMQo2QIaO/AdJ43wTYn6qAWsO59J52yVawhcnTtA5YVmDIymCdWvSpPSWnE -my4o1qsilEStDBgBD+6Zk7atCAxBVwzuxMyr1EQk2yBTN6KUqC6BjBex9CVpizeh -dROlibM5Kl753nPvrlZTgQKBgQC0fi6LbgUpafChv6RlrI/2L1B8oID3tz7IVjFE -+RkrX12FkWfYqG3WqO6MSark/fv2HBPNcS/EM4TWr3ESVUcxWwbU9QbK4dp71kCY -LzrjdbetD1gw+3jiZtgSKCVku2mb+V+8isHU861eQ3deM4R5tQAmEU8SZpY4SfKU -oeoQAwKBgDhaHQinuYCa1w9Mzy6/AagSmS9yhXX1zR4OSgvF2lU0hT18CAR6LgOR -gHOc6OscxDxheS38dHSIyRqD7F5hu1mO0KsGSCdmWIEKMkge8/yjrg4E4CPB5ICZ -RcKZRL/rSQZIsdeVJM9i5FiDUaJUX+cvLJQAC1XLfRrBxCHsY0E1 ------END RSA PRIVATE KEY----- diff --git a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.txt b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.txt deleted file mode 100644 index e250b6a3..00000000 --- a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msn_domains.txt +++ /dev/null @@ -1,17 +0,0 @@ -headwaiter.trusted.msntv.msn.com -sg1.trusted.msntv.msn.com -sg2.trusted.msntv.msn.com -sg3.trusted.msntv.msn.com -sg4.trusted.msntv.msn.com -msntv.msn.com -mail.services.live.com -sync-sg1.trusted.msntv.msn.com -login.live.com -poptimize.msn.com -favorites.msn.com -messenger.msn.com -livefilestore.com -users.storage.live.com -g.msn.com -msnialogin.passport.com -minisrv.local \ No newline at end of file diff --git a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msntv2.dhp b/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msntv2.dhp deleted file mode 100644 index 64882ce8..00000000 --- a/zefie_wtvp_minisrv/includes/ServiceDeps/msntv2/msntv2.dhp +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN DH PARAMETERS----- -MIGHAoGBAOjeZEDvMxiY+T4AMUIJ6jPFhflzUwO6EPBc0+Fn3C13WGQgsx9N3Rjg -bZsF4Sbqs62+KFTYb5/1PVPSOxyif0CJLRC8VhvCl5CZ2DsS6nJ3sstPxtfhQdn+ -X1kbvqAbHlvNtE6w5ketHv3gK6y4d9qdVnwicZW3uV1sJ2dg4RfDAgEC ------END DH PARAMETERS----- diff --git a/zefie_wtvp_minisrv/includes/classes/WTV-MSNTV2.js b/zefie_wtvp_minisrv/includes/classes/WTV-MSNTV2.js index ee7254d7..bbd54734 100644 --- a/zefie_wtvp_minisrv/includes/classes/WTV-MSNTV2.js +++ b/zefie_wtvp_minisrv/includes/classes/WTV-MSNTV2.js @@ -1163,23 +1163,11 @@ class WTVMSNTV2 { loadTlsContext() { try { - const certCandidates = [ - ['msntv2/msn_domains.crt', 'msntv2/msn_domains.key'] - ]; - let certFile = null; - let keyFile = null; - for (const [certPath, keyPath] of certCandidates) { - const candidateCert = this.wtvshared.getServiceDep(certPath, true); - const candidateKey = this.wtvshared.getServiceDep(keyPath, true); - if (candidateCert && candidateKey) { - certFile = candidateCert; - keyFile = candidateKey; - break; - } - } - if (!certFile || !keyFile) return null; - const certPem = fs.readFileSync(certFile); - const keyPem = fs.readFileSync(keyFile); + const candidateCert = (this.service_config.ssl) ? this.wtvshared.parseConfigVars(this.service_config.ssl.cert) : null; + const candidateKey = (this.service_config.ssl) ? this.wtvshared.parseConfigVars(this.service_config.ssl.key) : null; + if (!candidateCert || !candidateKey) return null; + const certPem = fs.readFileSync(candidateCert); + const keyPem = fs.readFileSync(candidateKey); return tls.createSecureContext({ cert: certPem, key: keyPem, @@ -1195,23 +1183,12 @@ class WTVMSNTV2 { loadForgeTlsCredentials() { try { - const certCandidates = [ - ['msntv2/msn_domains.crt', 'msntv2/msn_domains.key'] - ]; - let certFile = null; - let keyFile = null; - for (const [certPath, keyPath] of certCandidates) { - const candidateCert = this.wtvshared.getServiceDep(certPath, true); - const candidateKey = this.wtvshared.getServiceDep(keyPath, true); - if (candidateCert && candidateKey) { - certFile = candidateCert; - keyFile = candidateKey; - break; - } - } - if (!certFile || !keyFile) return null; - const certPem = fs.readFileSync(certFile, 'utf8'); - const keyPem = fs.readFileSync(keyFile, 'utf8'); + const candidateCert = (this.service_config.ssl) ? this.wtvshared.parseConfigVars(this.service_config.ssl.cert) : null; + const candidateKey = (this.service_config.ssl) ? this.wtvshared.parseConfigVars(this.service_config.ssl.key) : null; + + if (!candidateCert || !candidateKey) return null; + const certPem = fs.readFileSync(candidateCert, 'utf8'); + const keyPem = fs.readFileSync(candidateKey, 'utf8'); return { certPem, keyPem, diff --git a/zefie_wtvp_minisrv/includes/config.json b/zefie_wtvp_minisrv/includes/config.json index 691b13b9..26f9ea76 100644 --- a/zefie_wtvp_minisrv/includes/config.json +++ b/zefie_wtvp_minisrv/includes/config.json @@ -522,6 +522,10 @@ ], "handler_extra_vars": ["runScriptInVM", "handlePHP", "handleCGI", "ssid_sessions", "WTVClientSessionData", "socket_sessions"], "show_verbose_errors": false, + "ssl": { + "cert": "%ServiceDeps%/msntv2/minisrv.crt", + "key": "%ServiceDeps%/msntv2/minisrv.key" + }, "modules": [ "WTVRegister" ] diff --git a/zefie_wtvp_minisrv/tools/generate_msn_san_cert.js b/zefie_wtvp_minisrv/tools/generate_msn_san_cert.js index c19aa8d1..d0019c3f 100644 --- a/zefie_wtvp_minisrv/tools/generate_msn_san_cert.js +++ b/zefie_wtvp_minisrv/tools/generate_msn_san_cert.js @@ -7,12 +7,28 @@ const forge = require('node-forge'); const workspaceRoot = __dirname; const httpsDir = path.join(workspaceRoot, '..', 'includes', 'ServiceDeps', 'https'); const msnDir = path.join(workspaceRoot, '..', 'includes', 'ServiceDeps', 'msntv2'); -const domainsFile = path.join(msnDir, 'msn_domains.txt'); -const defaultCaCertPath = path.join(msnDir, 'msntv2.crt'); -const defaultCaKeyPath = path.join(msnDir, 'msntv2.key'); -const defaultOutCertPath = path.join(msnDir, 'msn_domains.crt'); -const defaultOutKeyPath = path.join(msnDir, 'msn_domains.key'); +const domains = [ + "headwaiter.trusted.msntv.msn.com", + "*.trusted.msntv.msn.com", + "msntv.msn.com", + "mail.services.live.com", + "login.live.com", + "poptimize.msn.com", + "favorites.msn.com", + "messenger.msn.com", + "livefilestore.com", + "users.storage.live.com", + "g.msn.com", + "msnialogin.passport.com", + "minisrv.local", + "*.minisrv.local" +] + +const defaultCaCertPath = path.join(msnDir, 'emac.crt'); +const defaultCaKeyPath = path.join(msnDir, 'emac.key'); +const defaultOutCertPath = path.join(msnDir, 'minisrv.crt'); +const defaultOutKeyPath = path.join(msnDir, 'minisrv.key'); function parseArgs(argv) { const out = {}; @@ -31,42 +47,6 @@ function parseArgs(argv) { return out; } -function extractDomainsFromRedirectMap(text) { - const found = []; - const seen = new Set(); - const re = /"([A-Za-z0-9.-]+\.)"\s*:\s*self\.redirect_ip/g; - let match; - while ((match = re.exec(text))) { - const clean = match[1].replace(/\.$/, '').toLowerCase(); - if (!seen.has(clean)) { - seen.add(clean); - found.push(clean); - } - } - return found; -} - -function loadDomains(args) { - if (args['from-map-file']) { - const mapText = fs.readFileSync(path.resolve(workspaceRoot, args['from-map-file']), 'utf8'); - const domains = extractDomainsFromRedirectMap(mapText); - if (!domains.length) { - throw new Error('No domains were extracted from --from-map-file.'); - } - return domains; - } - - if (!fs.existsSync(domainsFile)) { - throw new Error('Domain file not found: ' + domainsFile); - } - - const domains = fs.readFileSync(domainsFile, 'utf8') - .split(/\r?\n/) - .map((s) => s.trim().toLowerCase()) - .filter((s) => s && !s.startsWith('#')); - - return Array.from(new Set(domains)); -} function loadPemOrThrow(filePath, label) { if (!fs.existsSync(filePath)) { @@ -99,9 +79,8 @@ function generateCert({ domains, caCertPem, caKeyPem, outCertPath, outKeyPath, y cert.publicKey = keys.publicKey; cert.serialNumber = forge.util.bytesToHex(forge.random.getBytesSync(16)); - const now = new Date(); - cert.validity.notBefore = new Date(now.getTime() - 24 * 60 * 60 * 1000); - cert.validity.notAfter = new Date(now.getTime() + years * 365 * 24 * 60 * 60 * 1000); + cert.validity.notBefore = new Date('2000-01-01T12:00:00Z'); + cert.validity.notAfter = new Date('2099-12-31T23:59:59Z'); const cn = domains[0] || 'headwaiter.trusted.msntv.msn.com'; cert.setSubject([ @@ -141,7 +120,6 @@ function main() { const years = Number(args.years || 15); const sig = String(args.sig || 'sha1'); - const domains = loadDomains(args); const caCertPem = loadPemOrThrow(caCertPath, 'CA cert'); const caKeyPem = loadPemOrThrow(caKeyPath, 'CA key'); diff --git a/zefie_wtvp_minisrv/tools/includes/ServiceDeps/msntv2/minisrv.crt b/zefie_wtvp_minisrv/tools/includes/ServiceDeps/msntv2/minisrv.crt new file mode 100644 index 00000000..7832eaa7 --- /dev/null +++ b/zefie_wtvp_minisrv/tools/includes/ServiceDeps/msntv2/minisrv.crt @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIErzCCA5egAwIBAgIQ/K/Ib/7QA0rO4hjgM53sGDANBgkqhkiG9w0BAQUFADB0 +MRkwFwYDVQQDDBBtaW5pc3J2IHNlcnZpY2VzMREwDwYDVQQIDAhOZXcgWW9yazEL +MAkGA1UEBhMCVVMxHjAcBgkqhkiG9w0BCQEWD3plZmllQHplZmllLm5ldDEXMBUG +A1UECgwOWmVmaWUgTmV0d29ya3MwIBcNMDAwMTAxMTIwMDAwWhgPMjA5OTEyMzEy +MzU5NTlaMFExKTAnBgNVBAMTIGhlYWR3YWl0ZXIudHJ1c3RlZC5tc250di5tc24u +Y29tMRcwFQYDVQQKEw5aZWZpZSBOZXR3b3JrczELMAkGA1UEBhMCVVMwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDhh5bdTvB2q03vo/hwikBsfRt3p5Sg +Y7N6+e+UfUK8LxZRLwLwk3TIS7LcU+RE6d8UHO8A68joX61kYggtMAGEvYC2JWGC +XiUb37CZBJrIMTqU+tFn2zTyCvpNBU7Pv6t/PAKPc0XztrQEZ7RmqywDMbWu2B1M +86eil0HN4n4fGMYkVmVjkHJJYNChck+edkL4rDkKnbg4Ar37lYYHofrQDWTAW9eD +QSxXBPQbbqDIDHMdXwHnfCbJZIkgQ7ClK78PN6s9DRgagvnXI8vclyW38YQ/cqlk +DNkGDGcfAOg9BGtwTAUd7Bu/pAjrAR/WRY5jdv3++4/taibz5hKildA7AgMBAAGj +ggFcMIIBWDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIFoDATBgNVHSUEDDAKBggrBgEF +BQcDATCCAScGA1UdEQSCAR4wggEagiBoZWFkd2FpdGVyLnRydXN0ZWQubXNudHYu +bXNuLmNvbYIXKi50cnVzdGVkLm1zbnR2Lm1zbi5jb22CDW1zbnR2Lm1zbi5jb22C +Fm1haWwuc2VydmljZXMubGl2ZS5jb22CDmxvZ2luLmxpdmUuY29tghFwb3B0aW1p +emUubXNuLmNvbYIRZmF2b3JpdGVzLm1zbi5jb22CEW1lc3Nlbmdlci5tc24uY29t +ghFsaXZlZmlsZXN0b3JlLmNvbYIWdXNlcnMuc3RvcmFnZS5saXZlLmNvbYIJZy5t +c24uY29tghdtc25pYWxvZ2luLnBhc3Nwb3J0LmNvbYINbWluaXNydi5sb2NhbIIP +Ki5taW5pc3J2LmxvY2FsMA0GCSqGSIb3DQEBBQUAA4IBAQBRY2KlKxhVUCv0h86q +J66TAJocqyPEwnnvuEAxM209DhO84GR4+D9r+/U3aV18MN0tUEFOy/qx918zpwgC +kNghNmtydvW9phMFB//tX56c8UUT0rYESylKCdYDraCh9G3avI8A5hgJQCgfeUGA +l0XJvc/yA3piNAPohLB1zyOBlIONLWJxI4kyKjhOM2mkIkJWmLKXOHGPnnqCUAx+ ++NzEZiJst22sngmHikN53zKyUfp2DO9CUY7hbjctAKo0GUC/Q0yQmL95idqnw56j +Gv1deZcTth/1qUqcZRbQDT+546d87rDJLcQDXs/Q34IcmZa0v7jsIL5hJP+/PtOs +fpyG +-----END CERTIFICATE----- diff --git a/zefie_wtvp_minisrv/tools/includes/ServiceDeps/msntv2/minisrv.key b/zefie_wtvp_minisrv/tools/includes/ServiceDeps/msntv2/minisrv.key new file mode 100644 index 00000000..726d34ae --- /dev/null +++ b/zefie_wtvp_minisrv/tools/includes/ServiceDeps/msntv2/minisrv.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA4YeW3U7wdqtN76P4cIpAbH0bd6eUoGOzevnvlH1CvC8WUS8C +8JN0yEuy3FPkROnfFBzvAOvI6F+tZGIILTABhL2AtiVhgl4lG9+wmQSayDE6lPrR +Z9s08gr6TQVOz7+rfzwCj3NF87a0BGe0ZqssAzG1rtgdTPOnopdBzeJ+HxjGJFZl +Y5BySWDQoXJPnnZC+Kw5Cp24OAK9+5WGB6H60A1kwFvXg0EsVwT0G26gyAxzHV8B +53wmyWSJIEOwpSu/DzerPQ0YGoL51yPL3Jclt/GEP3KpZAzZBgxnHwDoPQRrcEwF +Hewbv6QI6wEf1kWOY3b9/vuP7Wom8+YSopXQOwIDAQABAoIBAGQK4Q3f2ARUHhjZ +HDpT4ZsebiJIaMIzJ+k72J5+aC2RF63AlGXCi3HUPo3E+wPk2KuT4COA9Fi8JG7c +m7Lr0iifZWqnL1eEyqJQOobOR5jZWZq/nkebMiPSYdDrs1ettvYUWTBoGpYvLDCu +DhTjBn2OPgFG5cx+YxTZUvvw5jCFV7u7CDzC3dD/KvPuGdQPOjBnFM9p9NL7AfRw +qOF4lw5M8ZT9caDuM/J77MuPXLVh5p6LlV9auVeo3s03E7BOw6Iutje0ZcBqKkjr +lDV1QPkXCbbywW1YQDVv1kv9KgAEG1ftbGzq1REEX8SxNWDSzHl1Q04erqsJAI2y +eO4RRVUCgYEA/8vgxZAF38605YPcddSzYzQLLABbQJP+1LFXM8fjpI7I5kb34QNN +YY6tjhuha9fyOdFTZb3Qj5bA661Hh26BCwA9mc/X/49SJqzriQiZt9ZXVJ3ri8Xv +N6N87ELr0uneVeP2zzjJS3E9G2fGqb2ZnRV3sdKpW2m+BNgOEmSdFrUCgYEA4bWL +RhrnN9ZNHWRQTLZSX1ixb9HtFV9AbiPrVPbmzLiqmoV/kppIinr94T3ymlygBTBS +mowlQViQbEfivmG12QNIs3W3nxBc2jw7vz3XYA/TANdQeNCW5mmgdKGN8IukVLHe +tO4Vu5L7lOck+W+LYVgOTgp/c5tFSMPKB4COMS8CgYBbtfRDwQxqHsl61JkRYg5j +DgDHaOVOtQETrvWN6ifzEwJylZVABpgS1z3gioWIjecZ1bQp8TE6mhlXJkxUAUmg +8Rgk8oEF7pPMrAjSm9PJNr8e5nPSLEhFUYdzidbVSuZdMxuFVl3Nf68iCUYQC5ts +14qPpfD0hmgLgo8hBxPPVQKBgEfy0gmv68K92mkjIAHEIK/qGu21MmkcqvIxGwRD +jED4INIO+iKmcbdLC4DweVRBcHUW+U3wnLOe4rLRm3LqvMgHpvYl8TmQQrkCeF02 +/l/Ny4o6GJnajC+4vgBPu2pRaTniVUbBmkXnzbCimgO1Te3i3vR7njMg7M4MM2t+ +zFTbAoGBAKh9KJs6t6K6bK4I7L7zmRME4L7TCvzXfnqTJHYjXUIuAPDqTaNZAgCd +pV45DfUWIIAis/RswLuR3yT6aH3Wpxx7fTW/DTInvBKfU7Kw2Oyko1jWboS/2E3D +0HWVZzdbU4Hj48XGeldjgPV0D1/vr1JRTYJGXtjcNDkRMk3U3xrT +-----END RSA PRIVATE KEY-----