Skip to content

Commit 48605ff

Browse files
committed
Add Signal Contact Discovery Service SSL certificate
Also add documentation on adding/updating SSL certificates
1 parent 5556ea7 commit 48605ff

File tree

4 files changed

+45
-1
lines changed

4 files changed

+45
-1
lines changed

Signal-Windows/Package.appxmanifest

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@
4848
<Extension Category="windows.certificates">
4949
<Certificates>
5050
<Certificate StoreName="TrustedPeople" Content="textsecure-servicewhispersystemsorg.crt" />
51+
<Certificate StoreName="TrustedPeople" Content="api-directory-signal-org.crt"/>
5152
</Certificates>
5253
</Extension>
5354
</Extensions>
54-
</Package>
55+
</Package>

Signal-Windows/Signal-Windows.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@
143143
<Content Include="Assets\Wide310x150Logo.scale-125.png" />
144144
<Content Include="Assets\Wide310x150Logo.scale-150.png" />
145145
<Content Include="Assets\Wide310x150Logo.scale-400.png" />
146+
<Content Include="api-directory-signal-org.crt" />
146147
<None Include="Package.StoreAssociation.xml" />
147148
<None Include="Package.xml" />
148149
<Content Include="textsecure-servicewhispersystemsorg.crt" />
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIEMDCCAxigAwIBAgICEDowDQYJKoZIhvcNAQELBQAwgY0xCzAJBgNVBAYTAlVT
3+
MRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMR0w
4+
GwYDVQQKDBRPcGVuIFdoaXNwZXIgU3lzdGVtczEdMBsGA1UECwwUT3BlbiBXaGlz
5+
cGVyIFN5c3RlbXMxEzARBgNVBAMMClRleHRTZWN1cmUwHhcNMTkwNjAxMDAwMDAw
6+
WhcNMzEwMTA5MDMzNzEwWjCBgzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlm
7+
b3JuaWExHTAbBgNVBAoMFE9wZW4gV2hpc3BlciBTeXN0ZW1zMR0wGwYDVQQLDBRP
8+
cGVuIFdoaXNwZXIgU3lzdGVtczEhMB8GA1UEAwwYYXBpLmRpcmVjdG9yeS5zaWdu
9+
YWwub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz5QXsh6QPygd
10+
gwIY86CbopBAng5zHHknvD3pX3vOBkt7Gd6IlZ+Jle/QFblaqTFPTuU/VX1oT4OI
11+
c5ZTNb5g/LvKMTBRzEset9CeTjx5STRcmWRlPeu3AJPZZEOvCH3AN55GOOiF8FQp
12+
qoFVIhSUFS17iuRr3iGLA0Khn0Ink0qJouQuBqfrx8AL+r5dfTfEqs4sxpS34rxy
13+
5M8z7HrccxbdcBHkNfn/QRLVikmzpFIBhlMcd9C8orobx+9Zv1cTsyl7m95Ma6zm
14+
/aAVT1nPfKi9t666kYvuTezkehbOCsPqTuGZipQ8620vWs4o0u6X+t9JJfYaTHHF
15+
lAU+GuYzCQIDAQABo4GhMIGeMAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9w
16+
ZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSvJRKESl+1u6wi
17+
Vs7ju08VUdaFLzAfBgNVHSMEGDAWgBQBixjxP/s5GURuhYa+lGUypzI8kDAjBgNV
18+
HREEHDAaghhhcGkuZGlyZWN0b3J5LnNpZ25hbC5vcmcwDQYJKoZIhvcNAQELBQAD
19+
ggEBAFganu/WuRTlcn2NYQPBGjVLtFUmvxZ8Y0U9u3Vg+fj8hXkpC3IN0MlWslmK
20+
EIFJTYUJKpUqvmCPuhjvsaUKCsF1ECaydzl6Tt6nQZmc74epLxDCprbClM8iLDZS
21+
+0ojUZdF/fGjT16NnoUy1aT2BhpFsIQOZCqM40jf1sHWRSsvnojPu8/NzHWBuRjt
22+
HKMJ/I9knakOywrd3htDQdySadU+7uwKRnX/adRpvr3sYi/4cR5sHuf6bAmL6eCB
23+
iZ4yTkYTQ0sPjAEYCrC2HsQPfYMdAPPMWuMlxgRDJkYT9y18jb9FXF6xVf7HhPWQ
24+
ZUmeym0sPsdNE2uKBEuo2YZXxrE=
25+
-----END CERTIFICATE-----

docs/quirks.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Quirks
2+
3+
## SSL Certificates
4+
5+
Open Whisper Systems uses its own certificate issuer for its SSL certificates. These certs are not trusted by OSes by default meaning SSL certificate validation with any Signal URLs will fail without some intervention. With the version of UWP we're currently targeting (10.0.15063) the typical way of changing certificate validation using HttpClientHandler.ServerCertificateCustomValidationCallback doesn't work because of [unimplemented code in UWP](https://github.com/dotnet/runtime/issues/18819). [It is possible to create a custom HttpMessageHandler that uses the WinRT HttpBaseProtocolFilter](https://github.com/novotnyllc/WinRtHttpClientHandler) but that isn't a great solution. Instead we install the Signal cert into the OS trusted store when installing the app. See [textsecure-servicewhispersystemsorg.crt](../Signal-Windows/textsecure-servicewhispersystemsorg.crt) and [Package.appxmanifest](../Signal-Windows/Package.appxmanifest).
6+
7+
### Adding/Updating Signal Certificates
8+
9+
1. Go to the Signal URL in your browser (https://textsecure-service.whispersystems.org, https://api.directory.signal.org, etc.)
10+
2. View the certificate in your browser
11+
3. Download the certificate.
12+
- Base64 encoded .CER in Chrome/Edge and PEM (cert) in Firefox
13+
- If adding
14+
- Copy the certificate to the Signal-Windows directory
15+
- Change the extension to .crt
16+
- Open [Package.appxmanifest](../Signal-Windows/Package.appxmanifest) and add a new `<Certificate>` tag with `StoreName` as `TrustedPeople` and `Content` being the filename of the certificate.
17+
- If updating rename the certificate to match what is currently in the repo and copy the certificate to the repo

0 commit comments

Comments
 (0)