> ## Content Index
> Fetch the complete content index at: https://ostreff.info/llms.txt
> Use this file to discover other available public pages before exploring further.

# How to display TLS server extensions on FreeBSD
- URL: https://ostreff.info/how-to-display-tls-server-extensions-on-freebsd/
- Published: 2022-11-02T16:35:54.000Z
- Updated: 2022-11-02T16:38:19.000Z
- Author: Jordan Ostreff
- Tags: FreeBSD, #security

Use `openssl` command-line utility to display TLS server extensions.

```bash
#!/usr/local/bin/bash
# Display TLS extensions
#
# Example:
#   $ get_tls_extensions.sh sleeplessbeastie.eu
#   Negotiated TLS version: TLSv1.2
#   TLS extensions:
#     - EC point formats
#     - extended master secret
#     - session ticket
#     - renegotiation info
#
#  $ get_tls_extensions.sh debian.org
#  Negotiated TLS version: TLSv1.2
#  TLS extensions:
#    - server name
#    - EC point formats
#    - session ticket
#    - renegotiation info
#

# temporary file
temp_file=$(mktemp)                                                                           
                                                                                                     
# delete temporary file on exit                                                                      
trap "unlink $temp_file" EXIT    

if [ "$#" -eq "1" ]; then
  website="$1"
  host "$website" >&-
  if [ "$?" -eq "0" ]; then
    echo -n | openssl s_client -servername "$website" -connect "$website":443 -tlsextdebug 2>/dev/null > $temp_file
    tls_version=$(cat $temp_file | awk -F:  '/^\ *Protocol/ {gsub(" ","",$2);print $2}')
    tls_extensions=$(cat $temp_file | gsed -n -e '1,/---/ {s/^TLS server extension \"\(.*\)\" (id=\(.*\)).*/\2:\1/p}' | sort | awk -F: '{print "  - " $2}')

    echo "Negotiated TLS version: $tls_version"
    echo "TLS extensions:"
    echo -e "$tls_extensions"
  fi
fi
```

You need to have install port `textproc/gsed`.

Based on [sleeplessbeastie.eu](https://sleeplessbeastie.eu/2019/03/04/how-to-display-tls-server-extensions/?ref=ostreff.info)