Skip to content

Commit 3af3651

Browse files
authored
Update OpenSSL configuration instructions for Linux
Update info on how to properly check where SSL certificates are located in Linux systems, and how to work around non-default locations when using the Speech SDK.
1 parent a3ee2c8 commit 3af3651

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

articles/cognitive-services/Speech-Service/how-to-configure-openssl-linux.md

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,37 @@ ms.author: jhakulin
1616

1717
When using any Speech SDK version before 1.9.0, [OpenSSL](https://www.openssl.org) is dynamically configured to the host-system version. In later versions of the Speech SDK, OpenSSL (version [1.1.1b](https://mta.openssl.org/pipermail/openssl-announce/2019-February/000147.html)) is statically linked to the core library of the Speech SDK.
1818

19-
## Troubleshoot connectivity
19+
To ensure connectivity, verify that OpenSSL certificates have been installed in your system. Run a command:
20+
```bash
21+
openssl version -d
22+
```
23+
24+
The output on Ubuntu/Debian based systems should be:
25+
```
26+
OPENSSLDIR: "/usr/lib/ssl"
27+
```
2028

21-
If there are connection failures when using the 1.9.0 release of the Speech SDK, ensure that the `ssl/certs` directory exists in `/usr/lib` directory - which is found in the Linux file system. If the `ssl/certs` directory *doesn't exist*, check where OpenSSL is installed in your system, using the following command:
29+
Check whether there is `certs` subdirectory under OPENSSLDIR. In the example above, it would be `/usr/lib/ssl/certs`.
2230

31+
* If there is `/usr/lib/ssl/certs` and it contains many individual certificate files (with `.crt` or `.pem` extension), there is no need for further actions.
32+
33+
* If OPENSSLDIR is something else than `/usr/lib/ssl` and/or there is a single certificate bundle file instead of multiple individual files, you need to set an appropriate SSL environment variable to indicate where the certificates can be found.
34+
35+
## Examples
36+
37+
1. OPENSSLDIR is `/opt/ssl`. There is `certs` subdirectory with many `.crt` or `.pem` files.
38+
Set environment variable `SSL_CERT_DIR` to point at `/opt/ssl/certs` before running a program that uses the Speech SDK. For example:
2339
```bash
24-
which openssl
40+
SSL_CERT_DIR=/opt/ssl/certs ./helloworld
2541
```
2642

27-
Then, locate the OpenSSL `certs` directory, and copy the contents of that directory into `/usr/lib/ssl/certs` directory. Next, try again to see if connectivity issues have been resolved.
43+
2. OPENSSLDIR is `/etc/pki/tls`. There is a certificate bundle file, for example `ca-bundle.pem` or `ca-bundle.crt`.
44+
Set environment variable `SSL_CERT_FILE` to point at `/etc/pki/tls/ca-bundle.pem` before running a program that uses the Speech SDK. For example:
45+
```bash
46+
SSL_CERT_FILE=/etc/pki/tls/ca-bundle.pem ./helloworld
47+
```
2848

2949
## Next steps
3050

3151
> [!div class="nextstepaction"]
32-
> [About the Speech SDK](speech-sdk.md)
52+
> [About the Speech SDK](speech-sdk.md)

0 commit comments

Comments
 (0)