openc3-cosmos-tool-docs 6.3.0 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/tools/staticdocs/404.html +1 -1
  3. data/tools/staticdocs/assets/images/cosmos-containers-7ecd745840fcff307f0fec01ac4d88a8fa76d531abeae407fee0e508f50a487c.png +0 -0
  4. data/tools/staticdocs/assets/images/cosmos-images-8e15c197653ac3a1f39e8c5eaa56155f364e67d87d66647cff1355b960093af1.png +0 -0
  5. data/tools/staticdocs/assets/js/2bb7bf90.1772f030.js +1 -0
  6. data/tools/staticdocs/assets/js/411898ad.f7b3ff17.js +1 -0
  7. data/tools/staticdocs/assets/js/5b233ba7.9d6ba314.js +1 -0
  8. data/tools/staticdocs/assets/js/6831b732.1318b398.js +1 -0
  9. data/tools/staticdocs/assets/js/696b4199.1e950fcb.js +1 -0
  10. data/tools/staticdocs/assets/js/867640d5.27d9d599.js +1 -0
  11. data/tools/staticdocs/assets/js/89e76475.e1b0dbdb.js +1 -0
  12. data/tools/staticdocs/assets/js/964eb012.0e04c58d.js +1 -0
  13. data/tools/staticdocs/assets/js/9d6e81d0.36405219.js +1 -0
  14. data/tools/staticdocs/assets/js/a677c089.cfa50691.js +1 -0
  15. data/tools/staticdocs/assets/js/a9b2dc27.805dc1ba.js +1 -0
  16. data/tools/staticdocs/assets/js/aa6b6c1b.ef9b0f38.js +1 -0
  17. data/tools/staticdocs/assets/js/b062d239.57d6e194.js +1 -0
  18. data/tools/staticdocs/assets/js/b6d70f94.a9228642.js +1 -0
  19. data/tools/staticdocs/assets/js/c24eae19.0575c394.js +1 -0
  20. data/tools/staticdocs/assets/js/d1b923aa.da892cde.js +1 -0
  21. data/tools/staticdocs/assets/js/d66bf9c0.80a50660.js +1 -0
  22. data/tools/staticdocs/assets/js/d9b92eba.5db8667e.js +1 -0
  23. data/tools/staticdocs/assets/js/{main.8d947189.js → main.a8e2c06c.js} +5 -5
  24. data/tools/staticdocs/assets/js/{runtime~main.d38c5d36.js → runtime~main.7102cb65.js} +1 -1
  25. data/tools/staticdocs/docs/configuration/accessors.html +4 -3
  26. data/tools/staticdocs/docs/configuration/command.html +1 -1
  27. data/tools/staticdocs/docs/configuration/format.html +1 -1
  28. data/tools/staticdocs/docs/configuration/interfaces.html +15 -4
  29. data/tools/staticdocs/docs/configuration/plugins.html +5 -5
  30. data/tools/staticdocs/docs/configuration/protocols.html +7 -6
  31. data/tools/staticdocs/docs/configuration/ssl-tls.html +115 -76
  32. data/tools/staticdocs/docs/configuration/table.html +1 -1
  33. data/tools/staticdocs/docs/configuration/target.html +1 -1
  34. data/tools/staticdocs/docs/configuration/telemetry-screens.html +1 -1
  35. data/tools/staticdocs/docs/configuration/telemetry.html +1 -1
  36. data/tools/staticdocs/docs/configuration.html +1 -1
  37. data/tools/staticdocs/docs/development/curl.html +4 -4
  38. data/tools/staticdocs/docs/development/developing.html +2 -2
  39. data/tools/staticdocs/docs/development/json-api.html +1 -1
  40. data/tools/staticdocs/docs/development/log-structure.html +1 -1
  41. data/tools/staticdocs/docs/development/roadmap.html +1 -1
  42. data/tools/staticdocs/docs/development/streaming-api.html +1 -1
  43. data/tools/staticdocs/docs/development/testing.html +1 -1
  44. data/tools/staticdocs/docs/development.html +1 -1
  45. data/tools/staticdocs/docs/getting-started/cli.html +2 -2
  46. data/tools/staticdocs/docs/getting-started/generators.html +2 -2
  47. data/tools/staticdocs/docs/getting-started/gettingstarted.html +1 -1
  48. data/tools/staticdocs/docs/getting-started/installation.html +1 -1
  49. data/tools/staticdocs/docs/getting-started/key-concepts.html +8 -4
  50. data/tools/staticdocs/docs/getting-started/podman.html +1 -1
  51. data/tools/staticdocs/docs/getting-started/requirements.html +1 -1
  52. data/tools/staticdocs/docs/getting-started/upgrading.html +1 -1
  53. data/tools/staticdocs/docs/getting-started.html +1 -1
  54. data/tools/staticdocs/docs/guides/bridges.html +1 -1
  55. data/tools/staticdocs/docs/guides/cfs.html +12 -12
  56. data/tools/staticdocs/docs/guides/custom-widgets.html +1 -1
  57. data/tools/staticdocs/docs/guides/dynamic-packets.html +1 -1
  58. data/tools/staticdocs/docs/guides/exposing-microservices.html +4 -4
  59. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +1 -1
  60. data/tools/staticdocs/docs/guides/local-mode.html +1 -1
  61. data/tools/staticdocs/docs/guides/logging.html +1 -1
  62. data/tools/staticdocs/docs/guides/monitoring.html +1 -1
  63. data/tools/staticdocs/docs/guides/performance.html +6 -6
  64. data/tools/staticdocs/docs/guides/raspberrypi.html +1 -1
  65. data/tools/staticdocs/docs/guides/script-writing.html +1 -1
  66. data/tools/staticdocs/docs/guides/scripting-api.html +55 -16
  67. data/tools/staticdocs/docs/guides.html +1 -1
  68. data/tools/staticdocs/docs/meta/contributing.html +1 -1
  69. data/tools/staticdocs/docs/meta/licenses.html +8 -8
  70. data/tools/staticdocs/docs/meta/philosophy.html +2 -2
  71. data/tools/staticdocs/docs/meta/xtce.html +1 -1
  72. data/tools/staticdocs/docs/meta.html +1 -1
  73. data/tools/staticdocs/docs/privacy.html +1 -1
  74. data/tools/staticdocs/docs/tools/admin.html +1 -1
  75. data/tools/staticdocs/docs/tools/autonomic.html +1 -1
  76. data/tools/staticdocs/docs/tools/bucket-explorer.html +2 -2
  77. data/tools/staticdocs/docs/tools/calendar.html +1 -1
  78. data/tools/staticdocs/docs/tools/cmd-sender.html +1 -1
  79. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +1 -1
  80. data/tools/staticdocs/docs/tools/command_history.html +1 -1
  81. data/tools/staticdocs/docs/tools/data-extractor.html +1 -1
  82. data/tools/staticdocs/docs/tools/data-viewer.html +1 -1
  83. data/tools/staticdocs/docs/tools/handbooks.html +1 -1
  84. data/tools/staticdocs/docs/tools/limits-monitor.html +1 -1
  85. data/tools/staticdocs/docs/tools/packet-viewer.html +1 -1
  86. data/tools/staticdocs/docs/tools/script-runner.html +1 -1
  87. data/tools/staticdocs/docs/tools/table-manager.html +1 -1
  88. data/tools/staticdocs/docs/tools/tlm-grapher.html +1 -1
  89. data/tools/staticdocs/docs/tools/tlm-viewer.html +1 -1
  90. data/tools/staticdocs/docs/tools.html +1 -1
  91. data/tools/staticdocs/docs.html +1 -1
  92. data/tools/staticdocs/img/cosmos-containers.png +0 -0
  93. data/tools/staticdocs/img/cosmos-images.png +0 -0
  94. data/tools/staticdocs/index.html +1 -1
  95. data/tools/staticdocs/lunr-index-1746647301890.json +1 -0
  96. data/tools/staticdocs/lunr-index.json +1 -1
  97. data/tools/staticdocs/markdown-page.html +1 -1
  98. data/tools/staticdocs/search-doc-1746647301890.json +1 -0
  99. data/tools/staticdocs/search-doc.json +1 -1
  100. metadata +28 -24
  101. data/tools/staticdocs/assets/js/2bb7bf90.4a658ce6.js +0 -1
  102. data/tools/staticdocs/assets/js/411898ad.f7fc4d80.js +0 -1
  103. data/tools/staticdocs/assets/js/5b233ba7.2ea0179c.js +0 -1
  104. data/tools/staticdocs/assets/js/6831b732.0a867cbc.js +0 -1
  105. data/tools/staticdocs/assets/js/696b4199.2a7ff897.js +0 -1
  106. data/tools/staticdocs/assets/js/867640d5.2c0fa6d9.js +0 -1
  107. data/tools/staticdocs/assets/js/89e76475.a76d0072.js +0 -1
  108. data/tools/staticdocs/assets/js/964eb012.dbc2c206.js +0 -1
  109. data/tools/staticdocs/assets/js/9d6e81d0.44e2d544.js +0 -1
  110. data/tools/staticdocs/assets/js/a677c089.18f98b70.js +0 -1
  111. data/tools/staticdocs/assets/js/a9b2dc27.e01c9bb4.js +0 -1
  112. data/tools/staticdocs/assets/js/aa6b6c1b.3aad95fc.js +0 -1
  113. data/tools/staticdocs/assets/js/b062d239.535a2ceb.js +0 -1
  114. data/tools/staticdocs/assets/js/b6d70f94.7813125e.js +0 -1
  115. data/tools/staticdocs/assets/js/c24eae19.aaae7796.js +0 -1
  116. data/tools/staticdocs/assets/js/d1b923aa.a73e7e79.js +0 -1
  117. data/tools/staticdocs/assets/js/d66bf9c0.842d2efa.js +0 -1
  118. data/tools/staticdocs/assets/js/d9b92eba.34e63ba6.js +0 -1
  119. data/tools/staticdocs/lunr-index-1743825503427.json +0 -1
  120. data/tools/staticdocs/search-doc-1743825503427.json +0 -1
@@ -1,85 +1,124 @@
1
- <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/ssl-tls" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.7.0"><title data-rh=true>SSL-TLS | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="SSL-TLS | OpenC3 Docs"><meta data-rh=true name=description content="How to configure SSL and TLS"><meta data-rh=true property=og:description content="How to configure SSL and TLS"><link data-rh=true rel=icon href=/tools/staticdocs/img/favicon.png><link data-rh=true rel=canonical href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls hreflang=x-default><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1de6b959.css><script src=/tools/staticdocs/assets/js/runtime~main.d38c5d36.js defer></script><script src=/tools/staticdocs/assets/js/main.8d947189.js defer></script><body class=navigation-with-keyboard><script>!function(){var t,e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t=null!==e?e:"dark",document.documentElement.setAttribute("data-theme",t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><div role=region aria-label="Skip to main content"><a class=skipToContent_G6ar href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="navbar navbar--fixed-top"><div class=navbar__inner><div class=navbar__items><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/tools/staticdocs/><div class=navbar__logo><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/tools/staticdocs/docs>Documentation</a><a href=https://openc3.com/enterprise/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class=navbarSearchContainer_bmvg><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="main-wrapper mainWrapper_UyTV"><div class=docsWrapper_XLvK><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type=button></button><div class=docRoot_HciC><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class=sidebarViewport_N8x0><div class=sidebar_vJCc><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs>Introduction</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul style=display:block;overflow:visible;height:auto class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/format>File Format</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/plugins>Plugins</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/target>Targets</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/command>Commands</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry>Telemetry</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/interfaces>Interfaces</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/protocols>Protocols</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/accessors>Accessors</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/table>Tables</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry-screens>Screens</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/tools/staticdocs/docs/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs/privacy>OpenC3, Inc. Privacy Policy</a></ul></nav></div></div></aside><main class=docMainContainer_namt><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_YAwJ"><div class=docItemContainer_Rv5Z><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label=Breadcrumbs><ul class=breadcrumbs itemscope itemtype=https://schema.org/BreadcrumbList><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/tools/staticdocs/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_JFrk><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class=breadcrumbs__item><a class=breadcrumbs__link itemprop=item href=/tools/staticdocs/docs/configuration><span itemprop=name>Configuration</span></a><meta itemprop=position content=1><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link itemprop=name>SSL-TLS</span><meta itemprop=position content=2></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type=button class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>SSL-TLS</h1></header><p>COSMOS 5 is a container based service which does not use SSL/TLS out of the box. This guide will help you configure SSL and TLS. Learn more at the Traefik <a href=https://doc.traefik.io/traefik/routing/entrypoints/#tls target=_blank rel="noopener noreferrer">docs</a>.</p>
2
- <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=generate-the-certificate>Generate the certificate<a href=#generate-the-certificate class=hash-link aria-label="Direct link to Generate the certificate" title="Direct link to Generate the certificate">​</a></h3>
3
- <blockquote>
4
- <p>Note: Self-signed certificates are considered insecure for the Internet. Firefox will treat the site as having an invalid certificate, while Chrome will act as if the connection was plain HTTP.</p>
5
- </blockquote>
6
- <p>To create a new Self-Signed SSL Certificate, use the openssl req command (run on linux from the cosmos-project root):</p>
7
- <div class="language-bash codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-bash codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain">openssl req </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-newkey</span><span class="token plain"> rsa:4096 </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-x509</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-sha256</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-days</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">3650</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-nodes</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-out</span><span class="token plain"> ./openc3-traefik/cert.crt </span><span class="token punctuation" style="color:rgb(199, 146, 234)">\</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(214, 222, 235)">-keyout</span><span class="token plain"> ./openc3-traefik/cert.key</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">Country Name </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token number" style="color:rgb(247, 140, 108)">2</span><span class="token plain"> letter code</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">XX</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain">:.</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">State or Province Name </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">full name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain">:.</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">Locality Name </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">eg, city</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">Default City</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain">:.</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">Organization Name </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">eg, company</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token plain">Default Company Ltd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain">:.</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">Organizational Unit Name </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">eg, section</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain">:.</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">Common Name </span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token plain">eg, your name or your server </span><span class="token function" style="color:rgb(130, 170, 255)">hostname</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain">: </span><span class="token operator" style="color:rgb(127, 219, 202)">&lt;</span><span class="token operator" style="color:rgb(127, 219, 202)">!</span><span class="token plain">-- UPDATE WITH YOUR </span><span class="token environment constant" style="color:rgb(130, 170, 255)">HOSTNAME</span><span class="token plain"> HERE --</span><span class="token operator" style="color:rgb(127, 219, 202)">></span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">Email Address </span><span class="token punctuation" style="color:rgb(199, 146, 234)">[</span><span class="token punctuation" style="color:rgb(199, 146, 234)">]</span><span class="token plain">:</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
8
- <p>Let's breakdown the command and understand what each option means:</p>
9
- <ul>
10
- <li><code>newkey rsa:4096</code> - Creates a new certificate request and 4096 bit RSA key. The default one is 2048 bits.</li>
11
- <li><code>x509</code> - Creates a X.509 Certificate.</li>
12
- <li><code>sha256</code> - Use 265-bit SHA (Secure Hash Algorithm).</li>
13
- <li><code>days 3650</code> - The number of days to certify the certificate for. 3650 is ten years. You can use any positive integer.</li>
14
- <li><code>nodes</code> - Creates a key without a passphrase.</li>
15
- <li><code>out ./openc3-traefik/cert.crt</code> - Specifies the filename to write the newly created certificate to. You can specify any file name.</li>
16
- <li><code>keyout ./openc3-traefik/cert.key</code> - Specifies the filename to write the newly created private key to. You can specify any file name.</li>
17
- </ul>
18
- <p>For more information about the <code>openssl req</code> command options, visit the <a href=https://www.openssl.org/docs/man1.0.2/man1/openssl-req.html target=_blank rel="noopener noreferrer">OpenSSL req documentation page</a>.</p>
19
- <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=updating-the-openc3-traefik-dockerfile>Updating the openc3-traefik Dockerfile<a href=#updating-the-openc3-traefik-dockerfile class=hash-link aria-label="Direct link to Updating the openc3-traefik Dockerfile" title="Direct link to Updating the openc3-traefik Dockerfile">​</a></h3>
20
- <p>Add the new cert to the traefik Docker container.</p>
21
- <div class="language-diff codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-diff codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token coord">--- a/openc3-traefik/Dockerfile</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token coord">+++ b/openc3-traefik/Dockerfile</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token coord">@@ -1,3 +1,4 @@</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">FROM traefik:2.4</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">COPY ./traefik.yaml /etc/traefik/traefik.yaml</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic">COPY ./cert.crt ./cert.key /etc/certs/</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">EXPOSE 80</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
22
- <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=updating-the-traefik-config>Updating the Traefik config<a href=#updating-the-traefik-config class=hash-link aria-label="Direct link to Updating the Traefik config" title="Direct link to Updating the Traefik config">​</a></h3>
23
- <p>Configure Traefik to use the new cert file.</p>
24
- <p>openc3-traefik/traefik.yaml</p>
25
- <div class="language-diff codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-diff codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token coord">--- a/openc3-traefik/traefik.yaml</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token coord">+++ b/openc3-traefik/traefik.yaml</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token coord">@@ -3,6 +3,17 @@</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic">tls:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> certificates:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> - certFile: "/etc/certs/cert.crt"</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> keyFile: "/etc/certs/cert.key"</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token plain"># Listen for everything coming in on the standard HTTP port</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain">entrypoints:</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> web:</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> address: ":2900"</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> http:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> redirections:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> entryPoint:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> to: websecure</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> scheme: https</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> websecure:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> address: ":2943"</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> http:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> tls:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> domains:</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> - main: "&lt;!-- UPDATE WITH YOUR HOSTNAME HERE -->"</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
26
- <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=update-docker-composeyaml>Update docker-compose.yaml<a href=#update-docker-composeyaml class=hash-link aria-label="Direct link to Update docker-compose.yaml" title="Direct link to Update docker-compose.yaml">​</a></h3>
27
- <p>Update traefik to use secure port 443 instead of port 80.</p>
28
- <div class="language-diff codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-diff codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token coord">--- a/compose.yaml</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token coord">+++ b/compose.yaml</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line">services:</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> openc3-minio:</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token plain">@@ -70,7 +70,7 @@ services:</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> openc3-traefik:</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> image: "ballaerospace/openc3-traefik:${OPENC3_TAG}"</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> ports:</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token deleted-sign deleted prefix deleted" style="color:rgba(239, 83, 80, 0.56);font-style:italic">-</span><span class="token deleted-sign deleted line" style="color:rgba(239, 83, 80, 0.56);font-style:italic"> - "80:2900"</span><br></span><span class=token-line style=color:#d6deeb><span class="token deleted-sign deleted line" style="color:rgba(239, 83, 80, 0.56);font-style:italic"></span><span class="token inserted-sign inserted prefix inserted" style="color:rgb(173, 219, 103);font-style:italic">+</span><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"> - "443:2943"</span><br></span><span class=token-line style=color:#d6deeb><span class="token inserted-sign inserted line" style="color:rgb(173, 219, 103);font-style:italic"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> restart: "unless-stopped"</span><br></span><span class=token-line style=color:#d6deeb><span class="token unchanged line"></span><span class="token unchanged prefix unchanged"> </span><span class="token unchanged line"> depends_on:</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
29
- <p>Now you can run <code>./openc3.sh start</code> to rebuild the Traefik container and it should include your new cert file.</p>
30
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=lets-encrypt>Let's Encrypt<a href=#lets-encrypt class=hash-link aria-label="Direct link to Let's Encrypt" title="Direct link to Let's Encrypt">​</a></h2>
31
- <h4 class="anchor anchorWithStickyNavbar_fF9Z" id=key>KEY<a href=#key class=hash-link aria-label="Direct link to KEY" title="Direct link to KEY">​</a></h4>
32
- <p>privkey.pem is the "key" file</p>
33
- <p>Sometimes it is named as cert.key or example.com.key.</p>
34
- <h4 class="anchor anchorWithStickyNavbar_fF9Z" id=crt>CRT<a href=#crt class=hash-link aria-label="Direct link to CRT" title="Direct link to CRT">​</a></h4>
35
- <p>fullchain.pem is your "crt" file.</p>
36
- <p>Sometimes it is named as example.com.crt.</p>
37
- <h4 class="anchor anchorWithStickyNavbar_fF9Z" id=crtkey-bundle>CRT/KEY Bundle<a href=#crtkey-bundle class=hash-link aria-label="Direct link to CRT/KEY Bundle" title="Direct link to CRT/KEY Bundle">​</a></h4>
38
- <p>bundle.pem would be made like so: cat fullchain.pem privkey.pem > bundle.pem</p>
39
- <p>HAProxy is the only server that I know of that uses bundle.pem.</p>
40
- <h4 class="anchor anchorWithStickyNavbar_fF9Z" id=certpem>cert.pem<a href=#certpem class=hash-link aria-label="Direct link to cert.pem" title="Direct link to cert.pem">​</a></h4>
41
- <p>cert.pem contains ONLY your certificate, which can only be used by itself if the browser already has the certificate which signed it, which may work in testing (which makes it seem like it may be the right file), but will actually fail for many of your users in production with a security error of untrusted certificate.</p>
42
- <p>However, you don't generally use the cert.pem by itself. It's almost always coupled with chain.pem as fullchain.pem.</p>
43
- <h4 class="anchor anchorWithStickyNavbar_fF9Z" id=chainpem>chain.pem<a href=#chainpem class=hash-link aria-label="Direct link to chain.pem" title="Direct link to chain.pem">​</a></h4>
44
- <p>chain.pem is the intermediary signed authority, signed by the root authority - which is what all browsers are guaranteed to have in their pre-built cache.</p>
45
- <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=checking-certs>Checking certs<a href=#checking-certs class=hash-link aria-label="Direct link to Checking certs" title="Direct link to Checking certs">​</a></h3>
46
- <p>You can inspect the cert like so:</p>
47
- <div class="codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-text codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain">openssl x509 -in cert.pem -text -noout</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
48
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=extracting-the-certificate-and-keys-from-a-pfx-file>Extracting the certificate and keys from a .pfx file<a href=#extracting-the-certificate-and-keys-from-a-pfx-file class=hash-link aria-label="Direct link to Extracting the certificate and keys from a .pfx file" title="Direct link to Extracting the certificate and keys from a .pfx file">​</a></h2>
49
- <p>The .pfx file, which is in a PKCS#12 format, contains the SSL certificate (public keys) and the corresponding private keys. You might have to import the certificate and private keys separately in an unencrypted plain text format to use it on another system. This topic provides instructions on how to convert the .pfx file to .crt and .key files.</p>
50
- <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=extract-crt-and-key-files-from-pfx-file>Extract .crt and .key files from .pfx file<a href=#extract-crt-and-key-files-from-pfx-file class=hash-link aria-label="Direct link to Extract .crt and .key files from .pfx file" title="Direct link to Extract .crt and .key files from .pfx file">​</a></h3>
51
- <blockquote>
52
- <p>PREREQUISITE: Ensure OpenSSL is installed in the server that contains the SSL certificate.</p>
53
- </blockquote>
1
+ <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/ssl-tls" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.7.0"><title data-rh=true>SSL-TLS | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="SSL-TLS | OpenC3 Docs"><meta data-rh=true name=description content="How to configure SSL and TLS"><meta data-rh=true property=og:description content="How to configure SSL and TLS"><link data-rh=true rel=icon href=/tools/staticdocs/img/favicon.png><link data-rh=true rel=canonical href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/ssl-tls hreflang=x-default><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1de6b959.css><script src=/tools/staticdocs/assets/js/runtime~main.7102cb65.js defer></script><script src=/tools/staticdocs/assets/js/main.a8e2c06c.js defer></script><body class=navigation-with-keyboard><script>!function(){var t,e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t=null!==e?e:"dark",document.documentElement.setAttribute("data-theme",t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><div role=region aria-label="Skip to main content"><a class=skipToContent_G6ar href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="navbar navbar--fixed-top"><div class=navbar__inner><div class=navbar__items><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/tools/staticdocs/><div class=navbar__logo><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/tools/staticdocs/docs>Documentation</a><a href=https://openc3.com/enterprise/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class=navbarSearchContainer_bmvg><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="main-wrapper mainWrapper_UyTV"><div class=docsWrapper_XLvK><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type=button></button><div class=docRoot_HciC><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class=sidebarViewport_N8x0><div class=sidebar_vJCc><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs>Introduction</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul style=display:block;overflow:visible;height:auto class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/format>File Format</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/plugins>Plugins</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/target>Targets</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/command>Commands</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry>Telemetry</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/interfaces>Interfaces</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/protocols>Protocols</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/accessors>Accessors</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/table>Tables</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry-screens>Screens</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/tools/staticdocs/docs/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs/privacy>OpenC3, Inc. Privacy Policy</a></ul></nav></div></div></aside><main class=docMainContainer_namt><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_YAwJ"><div class=docItemContainer_Rv5Z><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label=Breadcrumbs><ul class=breadcrumbs itemscope itemtype=https://schema.org/BreadcrumbList><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/tools/staticdocs/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_JFrk><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class=breadcrumbs__item><a class=breadcrumbs__link itemprop=item href=/tools/staticdocs/docs/configuration><span itemprop=name>Configuration</span></a><meta itemprop=position content=1><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link itemprop=name>SSL-TLS</span><meta itemprop=position content=2></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type=button class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>SSL-TLS</h1></header><p>OpenC3 COSMOS is a container based service which does not use SSL/TLS out of the box. This guide will help you configure SSL and TLS. Learn more at the Traefik <a href=https://doc.traefik.io/traefik/routing/entrypoints/#tls target=_blank rel="noopener noreferrer">docs</a>.</p>
2
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=understanding-ssl-tls-and-public-key-infrastructure-pki>Understanding SSL, TLS, and Public Key Infrastructure (PKI)<a href=#understanding-ssl-tls-and-public-key-infrastructure-pki class=hash-link aria-label="Direct link to Understanding SSL, TLS, and Public Key Infrastructure (PKI)" title="Direct link to Understanding SSL, TLS, and Public Key Infrastructure (PKI)">​</a></h2>
3
+ <p>Security on the internet is built on the technologies SSL and TLS. SSL (Secure Sockets Layer) was the original version but is now an outdated technology that is no longer used in favor of the more modern TLS (Transport Layer Security). However, the terms SSL and TLS are still used interchangeably in most conversations. Public Key Infrastructure (PKI) is what makes secure sockets like SSL and TLS work - and is built around certificates, certificate authorities, and public key encryption.</p>
4
+ <p>Public key encryption works with a set of two keys: the public key and the private key. A message encrypted with the public key can only be decrypted by the holder of the private key. This allows for secure messaging in one direction (from anyone with the public key to the single holder of the private key). Public keys can be safely shared "publicly" because they are only useful for creating an encrypted document that is useless to anyone without the private key. The private key should never be shared. Technically, the private key can also be used to encrypt messages that can be decrypted by the public key, but this is not useful since the public key is assumed to be available to everyone.</p>
5
+ <p>Certificate authorities issue certificates which contain a public key and additional information such as a domain name and are then digitally signed by the certificate authority. Verifying that the digital signature is valid (from a trusted certificate authority) is how your computer knows that if the public key works with a given domain name, then it can be trusted that the computer responding to that domain name is who it says it is. This can only be done if your computer has the information it needs to know if the certificate is valid. This information is included in the certificate authority trust store on your computer.</p>
6
+ <p>Have you ever seen "self signed certificate" type error messages? These error messages mean that your computer's certificate authority trust store wasn't able to verify the signature on a certificate. Generally this is because the certificate was issued by a private certificate authority (like an Active Directory Server or other company specific issuer). Computers by default include the information they need to check certificates from major public issuers of certificates (like Let's Encrypt) but don't have any information on private issuers unless you set it up.</p>
7
+ <p>Does this mean we can't use TLS without paying for certificates (or using free services like Let's Encrypt)? No, but it does mean if you use a private certificate authority, there is more work involved to make it work so that your computer will trust the certificates. This is unavoidable because computers are setup to not trust unknown certificate authorities for a good reason. If you trust all certificates then anyone can pretend to be any domain name on the internet. Side note: Domain Name Service (DNS) is still another layer of protection but TLS prevents someone who hacks DNS from also pretending to be valid domains.</p>
8
+ <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=configure-cosmos-for-tls>Configure COSMOS for TLS<a href=#configure-cosmos-for-tls class=hash-link aria-label="Direct link to Configure COSMOS for TLS" title="Direct link to Configure COSMOS for TLS">​</a></h2>
9
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=obtain-or-generate-the-certificates>Obtain or Generate the Certificates<a href=#obtain-or-generate-the-certificates class=hash-link aria-label="Direct link to Obtain or Generate the Certificates" title="Direct link to Obtain or Generate the Certificates">​</a></h3>
10
+ <p>Most OpenC3 customers will be using certificates generated by a private certificate authority. If your certificate authority is controlled by your IT department please contact them to receive the public key/private key and full certificate chain (cacert.pem) file for your domain name. Note that you must have the full certificate chain. Often CAs are "chained" with a root CA and one or more intermediate CAs. You must have the certificates for each in your cacert.pem or it will not work.</p>
11
+ <p>If using a cloud service, like AWS Private CA, follow the service's directions to retrieve these three files.</p>
12
+ <p>If you are running COSMOS on an internet facing server (not recommended), then you can get free TLS certificates from Let's Encrypt. In this case the Traefik container will retrieve the certificates for you automatically (directions later on this page).</p>
13
+ <p>If you want to generate self-signed certificates, especially for an IP address rather than a domain name, we recommend using the mkcert utility.</p>
54
14
  <ol>
55
- <li>
56
- <p>Start OpenSSL from the OpenSSL\bin folder.</p>
15
+ <li>Install mkcert (brew install mkcert on MacOs)</li>
16
+ <li>mkcert -install</li>
17
+ <li>mkcert "your ip or domain name here"</li>
18
+ </ol>
19
+ <p>This will generate YOURDOMAIN.pem (public key) and YOURDOMAIN-key.pem (private key)</p>
20
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=configuring-cacertpem-for-your-certificate-authority>Configuring cacert.pem for your certificate authority<a href=#configuring-cacertpem-for-your-certificate-authority class=hash-link aria-label="Direct link to Configuring cacert.pem for your certificate authority" title="Direct link to Configuring cacert.pem for your certificate authority">​</a></h3>
21
+ <p>If you are using certificates from a public certificate authority then you are good to go. We build all of our containers with a recent cacert.pem file that comes from the curl project and can be downloaded here: <a href=https://curl.se/ca/cacert.pem target=_blank rel="noopener noreferrer">https://curl.se/ca/cacert.pem</a>. This file contains the information needed to verify certificates from all of the major public certificate authorities. You can safely skip ahead to configuring COSMOS with the TLS public/private keys.</p>
22
+ <p>However, if your certificates are coming from a private certificate authority then you will need to configure the COSMOS containers with a cacert.pem file that includes the necessary information from your private certificate authority. Note that all non-public certificate authorities will need to be configured including services like Amazon Private CA. COSMOS WILL NOT WORK WITHOUT FOLLOWING THIS STEP.</p>
23
+ <p>It is recommended that you append your private certificate authority certificate to the end of the provided cacert.pem file. This allows COSMOS to work with the private CA and with the public internet over TLS.</p>
24
+ <p>In general this can be done like this:</p>
25
+ <div class="codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-text codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain">cat myca.pem >> cacert.pem</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
26
+ <p>If using mkcert to create self signed certificates, this can be done as follows:</p>
27
+ <div class="codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-text codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain">cat "`mkcert -CAROOT`"/rootCA.pem >> cacert.pem</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
28
+ <p>In all versions of COSMOS the base cacert.pem file can be found at the root of your COSMOS folder structure. This is the file you should modify/replace with your CA information.</p>
29
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=configure-cosmos-for-tls-when-running-in-docker-compose>Configure COSMOS for TLS when running in Docker Compose<a href=#configure-cosmos-for-tls-when-running-in-docker-compose class=hash-link aria-label="Direct link to Configure COSMOS for TLS when running in Docker Compose" title="Direct link to Configure COSMOS for TLS when running in Docker Compose">​</a></h3>
30
+ <p>Note: These instructions are only for Docker Compose (Both Core and Enterprise). If you are using Kubernetes with COSMOS Enterprise please see the Kubernetes instructions.</p>
31
+ <p>Follow earlier instructions to obtain your private key, public key, and to modify cacert.pem as necessary.</p>
32
+ <h4 class="anchor anchorWithStickyNavbar_fF9Z" id=enterprise-changes-required-for-all-tls-configurations>Enterprise Changes required for all TLS configurations<a href=#enterprise-changes-required-for-all-tls-configurations class=hash-link aria-label="Direct link to Enterprise Changes required for all TLS configurations" title="Direct link to Enterprise Changes required for all TLS configurations">​</a></h4>
33
+ <p>If running COSMOS Core skip to the next section.</p>
34
+ <ol>
35
+ <li>Edit compose.yaml<!-- -->
36
+ <ol>
37
+ <li>Change this openc3-keycloak line: KC_HOSTNAME: "<a href=http://localhost:2900/auth target=_blank rel="noopener noreferrer">http://localhost:2900/auth</a>"</li>
38
+ <li>It should be changed to the final url with correct http/https, domain, port and end with /auth</li>
39
+ </ol>
40
+ </li>
41
+ <li>Edit .env<!-- -->
42
+ <ol>
43
+ <li>Change the OPENC3_KEYCLOAK_EXTERNAL_URL and OPENC3_KEYCLOAK_URL lines so that <strong>both</strong> are set to the exact same url as set above in compose.yaml</li>
44
+ </ol>
45
+ </li>
46
+ <li>Edit openc3-enterprise-grafana/cosmos.yaml<!-- -->
47
+ <ol>
48
+ <li>Change the cosmosUrl and keycloakUrl settings to the correct schema, domain, and port. Keep /auth if present.</li>
49
+ </ol>
50
+ </li>
51
+ <li>Edit openc3-enterprise-grafana/grafana.ini<!-- -->
52
+ <ol>
53
+ <li>Change the root_url, auth_url, token_url, and api_url settings to the correct schema, domain, and port, leave any additional path information.</li>
54
+ </ol>
55
+ </li>
56
+ </ol>
57
+ <h4 class="anchor anchorWithStickyNavbar_fF9Z" id=using-tls-and-your-own-certificates>Using TLS and your own certificates<a href=#using-tls-and-your-own-certificates class=hash-link aria-label="Direct link to Using TLS and your own certificates" title="Direct link to Using TLS and your own certificates">​</a></h4>
58
+ <p>The following steps are written for the enterprise folder names. Remove "-enterprise" for COSMOS Core.</p>
59
+ <ol>
60
+ <li>Copy your public SSL certificate to ./openc3-enterprise-traefik/cert.crt</li>
61
+ <li>Copy your private SSL certificate to ./openc3-enterprise-traefik/cert.key</li>
62
+ <li>Edit compose.yaml<!-- -->
63
+ <ol>
64
+ <li>Comment out this openc3-traefik line: <code>- "./openc3-enterprise-traefik/traefik.yaml:/etc/traefik/traefik.yaml:z"</code></li>
65
+ <li>Uncomment this openc3-traefik line: <code>- "./openc3-enterprise-traefik/traefik-ssl.yaml:/etc/traefik/traefik.yaml"</code></li>
66
+ <li>Uncomment this openc3-traefik line: <code>- "./openc3-enterprise-traefik/cert.key:/etc/traefik/cert.key"</code></li>
67
+ <li>Uncomment this openc3-traefik line: <code>- "./openc3-enterprise-traefik/cert.crt:/etc/traefik/cert.crt"</code></li>
68
+ <li>Modify this openc3-traefik line to remove the ip address and modify the first port number if desired <strong>(Note: leave the last :2900)</strong>: <code>- "127.0.0.1:2900:2900"</code></li>
69
+ <li>Modify this openc3-traefik line to remove the ip address and modify the first port number if desired <strong>(Note: leave the last :2943)</strong>: <code>- "127.0.0.1:2943:2943"</code></li>
70
+ </ol>
71
+ </li>
72
+ <li>Edit ./openc3-enterprise-traefik/traefik-ssl.yaml<!-- -->
73
+ <ol>
74
+ <li>Update line 22 to your domain: - main: "mydomain.com" # Update with your domain</li>
75
+ </ol>
57
76
  </li>
58
- <li>
59
- <p>Open the command prompt and go to the folder that contains your .pfx file.</p>
77
+ <li>Start COSMOS<!-- -->
78
+ <ol>
79
+ <li>On Linux/Mac: ./openc3.sh run</li>
80
+ <li>On Windows: openc3.bat run</li>
81
+ </ol>
60
82
  </li>
61
- <li>
62
- <p>Run the following command to extract the private key:</p>
83
+ <li>Enterprise Only: After approximately 2 minutes, open a web browser to <a href=https://mydomain.com/auth/ target=_blank rel="noopener noreferrer">https://mydomain.com/auth/</a>
84
+ <ol>
85
+ <li>If you run "docker ps", you can watch until the openc3-cosmos-enterprise-init container completes, at which point the system should be fully configured and ready to use.</li>
86
+ </ol>
63
87
  </li>
88
+ <li>Enterprise Only: <strong>IMPORTANT</strong>: You must configure Keycloak before accessing <a href=https://mydomain.com target=_blank rel="noopener noreferrer">https://mydomain.com</a> to get to the main COSMOS app and Grafana to work (you'll just see a solid color page until you do this) - Please follow the Keycloak documentation in our <a href="https://github.com/OpenC3/cosmos-enterprise/blob/main/docs/OpenC3%20COSMOS%20Enterprise%20Edition%20User's%20Manual.pdf" target=_blank rel="noopener noreferrer">User's Manual</a></li>
89
+ </ol>
90
+ <h4 class="anchor anchorWithStickyNavbar_fF9Z" id=using-a-global-certificate-from-lets-encrypt>Using a global certificate from Let's Encrypt<a href=#using-a-global-certificate-from-lets-encrypt class=hash-link aria-label="Direct link to Using a global certificate from Let's Encrypt" title="Direct link to Using a global certificate from Let's Encrypt">​</a></h4>
91
+ <p>Warning: These directions only work when exposing OpenC3 COSMOS to the internet. Make sure you understand the risks and have properly configured your server settings and firewall.</p>
92
+ <p>The following steps are written for the enterprise folder names. Remove "-enterprise" for COSMOS Core.</p>
93
+ <ol>
94
+ <li>Make sure that your public DNS settings are mapping your domain name to your server</li>
95
+ <li>Edit compose.yaml<!-- -->
96
+ <ol>
97
+ <li>Comment out this openc3-traefik line: <code>- "./openc3-enterprise-traefik/traefik.yaml:/etc/traefik/traefik.yaml:z"</code></li>
98
+ <li>Uncomment this openc3-traefik line: <code>- "./openc3-enterprise-traefik/traefik-letsencrypt.yaml:/etc/traefik/traefik.yaml"</code></li>
99
+ <li>Comment out this openc3-traefik line: <code>- "127.0.0.1:2900:2900"</code></li>
100
+ <li>Comment out this openc3-traefik line: <code>- "127.0.0.1:2943:2943"</code></li>
101
+ <li>Uncomment out this openc3-traefik line: <code>- "80:2900"</code></li>
102
+ <li>Uncomment out this openc3-traefik line: <code>- "443:2943"</code></li>
64
103
  </ol>
65
- <div class="codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-text codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain">openssl pkcs12 -in [yourfile.pfx] -nocerts -out [drlive.key]</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
66
- <p>You will be prompted to type the import password. Type the password that you used to protect your keypair when you created the .pfx file. You will be prompted again to provide a new password to protect the .key file that you are creating. Store the password to your key file in a secure place to avoid misuse.</p>
104
+ </li>
105
+ <li>Start COSMOS<!-- -->
67
106
  <ol>
68
- <li>Run the following command to extract the certificate:</li>
107
+ <li>On Linux/Mac: ./openc3.sh run</li>
108
+ <li>On Windows: openc3.bat run</li>
69
109
  </ol>
70
- <div class="codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-text codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain">openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [drlive.crt]</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
110
+ </li>
111
+ <li>Enterprise Only: After approximately 2 minutes, open a web browser to <a href=https://mydomain.com/auth/ target=_blank rel="noopener noreferrer">https://mydomain.com/auth/</a>
71
112
  <ol>
72
- <li>Run the following command to decrypt the private key:</li>
113
+ <li>If you run "docker ps", you can watch until the openc3-cosmos-enterprise-init container completes, at which point the system should be fully configured and ready to use.</li>
114
+ </ol>
115
+ </li>
116
+ <li>Enterprise Only: <strong>IMPORTANT</strong>: You must configure Keycloak before accessing <a href=https://mydomain.com target=_blank rel="noopener noreferrer">https://mydomain.com</a> to get to the main COSMOS app and Grafana to work (you'll just see a blank blue page until you do this) - Please follow the Keycloak documentation in our <a href="https://github.com/OpenC3/cosmos-enterprise/blob/main/docs/OpenC3%20COSMOS%20Enterprise%20Edition%20User's%20Manual.pdf" target=_blank rel="noopener noreferrer">User's Manual</a></li>
73
117
  </ol>
74
- <div class="codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-text codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain">openssl rsa -in [drlive.key] -out [drlive-decrypted.key]</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
75
- <p>Type the password that you created to protect the private key file in the previous step.
76
- The .crt file and the decrypted and encrypted .key files are available in the path, where you started OpenSSL.</p>
77
- <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=convert-pfx-file-to-pem-format>Convert .pfx file to .pem format<a href=#convert-pfx-file-to-pem-format class=hash-link aria-label="Direct link to Convert .pfx file to .pem format" title="Direct link to Convert .pfx file to .pem format">​</a></h3>
78
- <p>There might be instances where you might have to convert the .pfx file into .pem format. Run the following command to convert it into PEM format.</p>
79
- <div class="codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-text codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token plain">openssl rsa -in [keyfile-encrypted.key] -outform PEM -out [keyfile-encrypted-pem.key]</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div>
80
- <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=tls12-inadequate_security-errors>TLS1.2 INADEQUATE_SECURITY Errors<a href=#tls12-inadequate_security-errors class=hash-link aria-label="Direct link to TLS1.2 INADEQUATE_SECURITY Errors" title="Direct link to TLS1.2 INADEQUATE_SECURITY Errors">​</a></h2>
81
- <ul>
82
- <li><a href=https://doc.traefik.io/traefik/https/tls/#cipher-suites target=_blank rel="noopener noreferrer">https://doc.traefik.io/traefik/https/tls/#cipher-suites</a></li>
83
- <li><a href=https://pkg.go.dev/crypto/tls#pkg-constants target=_blank rel="noopener noreferrer">https://pkg.go.dev/crypto/tls#pkg-constants</a></li>
84
- </ul>
85
- <div class="language-yaml codeBlockContainer_ZGJx theme-code-block" style=--prism-color:#d6deeb;--prism-background-color:#011627><div class=codeBlockContent_qZBB><pre tabindex=0 class="prism-code language-yaml codeBlock_TAPP thin-scrollbar" style=color:#d6deeb;background-color:#011627><code class=codeBlockLines_AdAo><span class=token-line style=color:#d6deeb><span class="token key atrule">tls</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token key atrule">options</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token key atrule">default</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token key atrule">cipherSuites</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256</span><br></span><span class=token-line style=color:#d6deeb><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain"> TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256</span><br></span></code></pre><div class=buttonGroup_TNwR><button type=button aria-label="Copy code to clipboard" title=Copy class=clean-btn><span class=copyButtonIcons_MVhB aria-hidden=true><svg viewBox="0 0 24 24" class=copyButtonIcon_yxgH><path fill=currentColor d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"/></svg><svg viewBox="0 0 24 24" class=copyButtonSuccessIcon_QJLJ><path fill=currentColor d=M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z /></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class=col><a href=https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/configuration/ssl-tls.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_UohW aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_g62E"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/tools/staticdocs/docs/configuration/telemetry-screens><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Screens</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/tools/staticdocs/docs/tools><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Tools</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_TN1Q thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#generate-the-certificate class="table-of-contents__link toc-highlight">Generate the certificate</a><li><a href=#updating-the-openc3-traefik-dockerfile class="table-of-contents__link toc-highlight">Updating the openc3-traefik Dockerfile</a><li><a href=#updating-the-traefik-config class="table-of-contents__link toc-highlight">Updating the Traefik config</a><li><a href=#update-docker-composeyaml class="table-of-contents__link toc-highlight">Update docker-compose.yaml</a><li><a href=#lets-encrypt class="table-of-contents__link toc-highlight">Let's Encrypt</a><ul><li><a href=#key class="table-of-contents__link toc-highlight">KEY</a><li><a href=#crt class="table-of-contents__link toc-highlight">CRT</a><li><a href=#crtkey-bundle class="table-of-contents__link toc-highlight">CRT/KEY Bundle</a><li><a href=#certpem class="table-of-contents__link toc-highlight">cert.pem</a><li><a href=#chainpem class="table-of-contents__link toc-highlight">chain.pem</a><li><a href=#checking-certs class="table-of-contents__link toc-highlight">Checking certs</a></ul><li><a href=#extracting-the-certificate-and-keys-from-a-pfx-file class="table-of-contents__link toc-highlight">Extracting the certificate and keys from a .pfx file</a><ul><li><a href=#extract-crt-and-key-files-from-pfx-file class="table-of-contents__link toc-highlight">Extract .crt and .key files from .pfx file</a><li><a href=#convert-pfx-file-to-pem-format class="table-of-contents__link toc-highlight">Convert .pfx file to .pem format</a></ul><li><a href=#tls12-inadequate_security-errors class="table-of-contents__link toc-highlight">TLS1.2 INADEQUATE_SECURITY Errors</a></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class=footer__title>Homepage</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://openc3.com target=_blank rel="noopener noreferrer" class=footer__link-item>Home</a></ul></div><div class="col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/tools/staticdocs/docs>Documentation</a></ul></div><div class="col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.linkedin.com/company/openc3 target=_blank rel="noopener noreferrer" class=footer__link-item>LinkedIn<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_awgD><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div><div class="col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/OpenC3/cosmos target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_awgD><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a class=footer__link-item href=/tools/staticdocs/docs/privacy>Privacy</a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 OpenC3, Inc.</div></div></div></footer></div>
118
+ <h3 class="anchor anchorWithStickyNavbar_fF9Z" id=configure-cosmos-enterprise-for-tls-when-running-in-kubernetes>Configure COSMOS Enterprise for TLS when running in Kubernetes<a href=#configure-cosmos-enterprise-for-tls-when-running-in-kubernetes class=hash-link aria-label="Direct link to Configure COSMOS Enterprise for TLS when running in Kubernetes" title="Direct link to Configure COSMOS Enterprise for TLS when running in Kubernetes">​</a></h3>
119
+ <p>Follow earlier instructions to obtain your private key, public key, and to modify cacert.pem as necessary.</p>
120
+ <p>In most Kubernetes environments, COSMOS will use a separate platform provided load balancer as the TLS termination point. Follow the directions for your specific Kubernetes environment to configure this load balancer with the TLS keys. Don't forget to update the cacert.pem file for COSMOS (and create the secret defined below) so that COSMOS can recognize the CA that issued your keys. As of COSMOS Enterprise 6.4, the create_secrets.sh script will create a secret called openc3-cacert to hold this file. This file is automatically mounted into each container that needs it at /devel/cacert.pem. Our helm charts also set the appropriate environment variables to use this file.</p>
121
+ <p>You will also need to correctly set several values in the helm chart values.yaml file to configure for TLS. The relevant values are described in the following table.</p>
122
+ <table><thead><tr><th>Value Name<th>Description<th>Default Value<tbody><tr><td>global.cosmosdomain<td>The domain name that cosmos will be hosted at<td>cosmos.openc3.com<tr><td>ssl<td>This flag should be set to true if you are using SSL/TLS even with an external load balancer<td>true<tr><td>traefik.tlsCerts<td>Set this flag to true if you are going to use Traefik as your SSL endpoint with given certs<td>false<tr><td>traefik.letsEncrypt<td>Set this flag to true if you want Traefik to acquire certs from Lets Encrypt. Will only work on the public internet.<td>false<tr><td>traefik.letsEncryptEmail<td>Email address given to Lets Encrypt when issuing certs<td>false</table>
123
+ <p>Additionally the following secrets will need to be defined based on how you set the above values.</p>
124
+ <table><thead><tr><th>Secret Name<th>Description<tbody><tr><td>openc3-cacert<td>This should always be set with the cacert.pem file used by COSMOS (even if just using public certificates). Be sure to append the full certificate chain from your private CA so that COSMOS can verify certificates successfully. Without doing this you will be guaranteed to receive SSL errors.<tr><td>openc3-traefik-cert<td>Public key provided to Traefik if traefik.tlsCerts is true<tr><td>openc3-traefik-key<td>Private key provided to Traefik if traefik.tlsCerts is true</table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class=col><a href=https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/configuration/ssl-tls.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_UohW aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit this page</a></div><div class="col lastUpdated_g62E"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/tools/staticdocs/docs/configuration/telemetry-screens><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Screens</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/tools/staticdocs/docs/tools><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Tools</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_TN1Q thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#understanding-ssl-tls-and-public-key-infrastructure-pki class="table-of-contents__link toc-highlight">Understanding SSL, TLS, and Public Key Infrastructure (PKI)</a><li><a href=#configure-cosmos-for-tls class="table-of-contents__link toc-highlight">Configure COSMOS for TLS</a><ul><li><a href=#obtain-or-generate-the-certificates class="table-of-contents__link toc-highlight">Obtain or Generate the Certificates</a><li><a href=#configuring-cacertpem-for-your-certificate-authority class="table-of-contents__link toc-highlight">Configuring cacert.pem for your certificate authority</a><li><a href=#configure-cosmos-for-tls-when-running-in-docker-compose class="table-of-contents__link toc-highlight">Configure COSMOS for TLS when running in Docker Compose</a><ul><li><a href=#enterprise-changes-required-for-all-tls-configurations class="table-of-contents__link toc-highlight">Enterprise Changes required for all TLS configurations</a><li><a href=#using-tls-and-your-own-certificates class="table-of-contents__link toc-highlight">Using TLS and your own certificates</a><li><a href=#using-a-global-certificate-from-lets-encrypt class="table-of-contents__link toc-highlight">Using a global certificate from Let's Encrypt</a></ul><li><a href=#configure-cosmos-enterprise-for-tls-when-running-in-kubernetes class="table-of-contents__link toc-highlight">Configure COSMOS Enterprise for TLS when running in Kubernetes</a></ul></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class=footer__title>Homepage</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://openc3.com target=_blank rel="noopener noreferrer" class=footer__link-item>Home</a></ul></div><div class="col footer__col"><div class=footer__title>Docs</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/tools/staticdocs/docs>Documentation</a></ul></div><div class="col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://www.linkedin.com/company/openc3 target=_blank rel="noopener noreferrer" class=footer__link-item>LinkedIn<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_awgD><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div><div class="col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/OpenC3/cosmos target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_awgD><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a class=footer__link-item href=/tools/staticdocs/docs/privacy>Privacy</a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2025 OpenC3, Inc.</div></div></div></footer></div>
@@ -1,4 +1,4 @@
1
- <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/table" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.7.0"><title data-rh=true>Tables | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://docs.openc3.com/tools/staticdocs/docs/configuration/table><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Tables | OpenC3 Docs"><meta data-rh=true name=description content="Table definition file format and keywords"><meta data-rh=true property=og:description content="Table definition file format and keywords"><link data-rh=true rel=icon href=/tools/staticdocs/img/favicon.png><link data-rh=true rel=canonical href=https://docs.openc3.com/tools/staticdocs/docs/configuration/table><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/table hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/table hreflang=x-default><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1de6b959.css><script src=/tools/staticdocs/assets/js/runtime~main.d38c5d36.js defer></script><script src=/tools/staticdocs/assets/js/main.8d947189.js defer></script><body class=navigation-with-keyboard><script>!function(){var t,e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t=null!==e?e:"dark",document.documentElement.setAttribute("data-theme",t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><div role=region aria-label="Skip to main content"><a class=skipToContent_G6ar href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="navbar navbar--fixed-top"><div class=navbar__inner><div class=navbar__items><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/tools/staticdocs/><div class=navbar__logo><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/tools/staticdocs/docs>Documentation</a><a href=https://openc3.com/enterprise/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class=navbarSearchContainer_bmvg><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="main-wrapper mainWrapper_UyTV"><div class=docsWrapper_XLvK><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type=button></button><div class=docRoot_HciC><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class=sidebarViewport_N8x0><div class=sidebar_vJCc><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs>Introduction</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul style=display:block;overflow:visible;height:auto class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/format>File Format</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/plugins>Plugins</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/target>Targets</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/command>Commands</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry>Telemetry</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/interfaces>Interfaces</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/protocols>Protocols</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/accessors>Accessors</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/tools/staticdocs/docs/configuration/table>Tables</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry-screens>Screens</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs/privacy>OpenC3, Inc. Privacy Policy</a></ul></nav></div></div></aside><main class=docMainContainer_namt><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_YAwJ"><div class=docItemContainer_Rv5Z><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label=Breadcrumbs><ul class=breadcrumbs itemscope itemtype=https://schema.org/BreadcrumbList><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/tools/staticdocs/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_JFrk><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class=breadcrumbs__item><a class=breadcrumbs__link itemprop=item href=/tools/staticdocs/docs/configuration><span itemprop=name>Configuration</span></a><meta itemprop=position content=1><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link itemprop=name>Tables</span><meta itemprop=position content=2></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type=button class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Tables</h1></header><h2 class="anchor anchorWithStickyNavbar_fF9Z" id=table-definition-files>Table Definition Files<a href=#table-definition-files class=hash-link aria-label="Direct link to Table Definition Files" title="Direct link to Table Definition Files">​</a></h2>
1
+ <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/table" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.7.0"><title data-rh=true>Tables | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://docs.openc3.com/tools/staticdocs/docs/configuration/table><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Tables | OpenC3 Docs"><meta data-rh=true name=description content="Table definition file format and keywords"><meta data-rh=true property=og:description content="Table definition file format and keywords"><link data-rh=true rel=icon href=/tools/staticdocs/img/favicon.png><link data-rh=true rel=canonical href=https://docs.openc3.com/tools/staticdocs/docs/configuration/table><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/table hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/table hreflang=x-default><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1de6b959.css><script src=/tools/staticdocs/assets/js/runtime~main.7102cb65.js defer></script><script src=/tools/staticdocs/assets/js/main.a8e2c06c.js defer></script><body class=navigation-with-keyboard><script>!function(){var t,e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t=null!==e?e:"dark",document.documentElement.setAttribute("data-theme",t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><div role=region aria-label="Skip to main content"><a class=skipToContent_G6ar href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="navbar navbar--fixed-top"><div class=navbar__inner><div class=navbar__items><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/tools/staticdocs/><div class=navbar__logo><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/tools/staticdocs/docs>Documentation</a><a href=https://openc3.com/enterprise/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class=navbarSearchContainer_bmvg><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="main-wrapper mainWrapper_UyTV"><div class=docsWrapper_XLvK><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type=button></button><div class=docRoot_HciC><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class=sidebarViewport_N8x0><div class=sidebar_vJCc><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs>Introduction</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul style=display:block;overflow:visible;height:auto class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/format>File Format</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/plugins>Plugins</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/target>Targets</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/command>Commands</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry>Telemetry</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/interfaces>Interfaces</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/protocols>Protocols</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/accessors>Accessors</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/tools/staticdocs/docs/configuration/table>Tables</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry-screens>Screens</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs/privacy>OpenC3, Inc. Privacy Policy</a></ul></nav></div></div></aside><main class=docMainContainer_namt><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_YAwJ"><div class=docItemContainer_Rv5Z><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label=Breadcrumbs><ul class=breadcrumbs itemscope itemtype=https://schema.org/BreadcrumbList><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/tools/staticdocs/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_JFrk><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class=breadcrumbs__item><a class=breadcrumbs__link itemprop=item href=/tools/staticdocs/docs/configuration><span itemprop=name>Configuration</span></a><meta itemprop=position content=1><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link itemprop=name>Tables</span><meta itemprop=position content=2></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type=button class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Tables</h1></header><h2 class="anchor anchorWithStickyNavbar_fF9Z" id=table-definition-files>Table Definition Files<a href=#table-definition-files class=hash-link aria-label="Direct link to Table Definition Files" title="Direct link to Table Definition Files">​</a></h2>
2
2
  <p>Table definition files define the binary tables that can be displayed in COSMOS <a href=/tools/staticdocs/docs/tools/table-manager>Table Manager</a>
3
3
  . Table definitions are defined in the target's tables/config directory and are typically named after the table such as <code>PPSSelectionTable_def.txt</code>. The <code>_def.txt</code> extension helps to identify the file as a table definition. Table definitions can be combined using the <code>TABLEFILE</code> keyword. This allows you to build individual table components into a larger binary.</p>
4
4
  <p>The Table definition files share a lot of similarity with the <a href=/tools/staticdocs/docs/configuration/command>Command Configuration</a>. You have the same data types: INT, UINT, FLOAT, STRING, BLOCK. These correspond to integers, unsigned integers, floating point numbers, strings and binary blocks of data.</p>
@@ -1,4 +1,4 @@
1
- <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/target" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.7.0"><title data-rh=true>Targets | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://docs.openc3.com/tools/staticdocs/docs/configuration/target><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Targets | OpenC3 Docs"><meta data-rh=true name=description content="Target definition file format and keywords"><meta data-rh=true property=og:description content="Target definition file format and keywords"><link data-rh=true rel=icon href=/tools/staticdocs/img/favicon.png><link data-rh=true rel=canonical href=https://docs.openc3.com/tools/staticdocs/docs/configuration/target><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/target hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/target hreflang=x-default><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1de6b959.css><script src=/tools/staticdocs/assets/js/runtime~main.d38c5d36.js defer></script><script src=/tools/staticdocs/assets/js/main.8d947189.js defer></script><body class=navigation-with-keyboard><script>!function(){var t,e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t=null!==e?e:"dark",document.documentElement.setAttribute("data-theme",t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><div role=region aria-label="Skip to main content"><a class=skipToContent_G6ar href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="navbar navbar--fixed-top"><div class=navbar__inner><div class=navbar__items><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/tools/staticdocs/><div class=navbar__logo><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/tools/staticdocs/docs>Documentation</a><a href=https://openc3.com/enterprise/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class=navbarSearchContainer_bmvg><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="main-wrapper mainWrapper_UyTV"><div class=docsWrapper_XLvK><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type=button></button><div class=docRoot_HciC><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class=sidebarViewport_N8x0><div class=sidebar_vJCc><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs>Introduction</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul style=display:block;overflow:visible;height:auto class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/format>File Format</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/plugins>Plugins</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/tools/staticdocs/docs/configuration/target>Targets</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/command>Commands</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry>Telemetry</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/interfaces>Interfaces</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/protocols>Protocols</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/accessors>Accessors</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/table>Tables</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry-screens>Screens</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs/privacy>OpenC3, Inc. Privacy Policy</a></ul></nav></div></div></aside><main class=docMainContainer_namt><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_YAwJ"><div class=docItemContainer_Rv5Z><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label=Breadcrumbs><ul class=breadcrumbs itemscope itemtype=https://schema.org/BreadcrumbList><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/tools/staticdocs/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_JFrk><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class=breadcrumbs__item><a class=breadcrumbs__link itemprop=item href=/tools/staticdocs/docs/configuration><span itemprop=name>Configuration</span></a><meta itemprop=position content=1><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link itemprop=name>Targets</span><meta itemprop=position content=2></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type=button class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><p>Targets are the external embedded systems that COSMOS connects to. Targets are defined by the top level <a href=/tools/staticdocs/docs/configuration/plugins#target-1>TARGET</a> keyword in the plugin.txt file. Each target is self contained in a target directory named after the target. In the root of the target directory there is a configuration file named target.txt which configures the individual target.</p>
1
+ <!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-configuration/target" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.7.0"><title data-rh=true>Targets | OpenC3 Docs</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true property=og:url content=https://docs.openc3.com/tools/staticdocs/docs/configuration/target><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true name=docusaurus_version content=current><meta data-rh=true name=docusaurus_tag content=docs-default-current><meta data-rh=true name=docsearch:version content=current><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-current><meta data-rh=true property=og:title content="Targets | OpenC3 Docs"><meta data-rh=true name=description content="Target definition file format and keywords"><meta data-rh=true property=og:description content="Target definition file format and keywords"><link data-rh=true rel=icon href=/tools/staticdocs/img/favicon.png><link data-rh=true rel=canonical href=https://docs.openc3.com/tools/staticdocs/docs/configuration/target><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/target hreflang=en><link data-rh=true rel=alternate href=https://docs.openc3.com/tools/staticdocs/docs/configuration/target hreflang=x-default><link rel=stylesheet href=/tools/staticdocs/assets/css/styles.1de6b959.css><script src=/tools/staticdocs/assets/js/runtime~main.7102cb65.js defer></script><script src=/tools/staticdocs/assets/js/main.a8e2c06c.js defer></script><body class=navigation-with-keyboard><script>!function(){var t,e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t=null!==e?e:"dark",document.documentElement.setAttribute("data-theme",t)}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id=__docusaurus><link rel=preload as=image href=/tools/staticdocs/img/logo.svg><div role=region aria-label="Skip to main content"><a class=skipToContent_G6ar href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="navbar navbar--fixed-top"><div class=navbar__inner><div class=navbar__items><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/tools/staticdocs/><div class=navbar__logo><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--light_DIHH"><img src=/tools/staticdocs/img/logo.svg alt="OpenC3 Logo" class="themedComponent_DHUr themedComponent--dark_Bv2M"></div><b class="navbar__title text--truncate">OpenC3 Docs</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/tools/staticdocs/docs>Documentation</a><a href=https://openc3.com/enterprise/ target=_blank rel="noopener noreferrer" class="navbar__item navbar__link">Enterprise</a></div><div class="navbar__items navbar__items--right"><div class=navbarSearchContainer_bmvg><div class=navbar__search><span aria-label="expand searchbar" role=button class=search-icon tabindex=0></span><input id=search_input_react type=search placeholder=Loading... aria-label=Search class="navbar__search-input search-bar" disabled></div></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="main-wrapper mainWrapper_UyTV"><div class=docsWrapper_XLvK><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_z1FD" type=button></button><div class=docRoot_HciC><aside class="theme-doc-sidebar-container docSidebarContainer_e5ai"><div class=sidebarViewport_N8x0><div class=sidebar_vJCc><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_qiME"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs>Introduction</a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/getting-started>Getting Started</a><button aria-label="Expand sidebar category 'Getting Started'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--active" href=/tools/staticdocs/docs/configuration>Configuration</a><button aria-label="Collapse sidebar category 'Configuration'" aria-expanded=true type=button class="clean-btn menu__caret"></button></div><ul style=display:block;overflow:visible;height:auto class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/format>File Format</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/plugins>Plugins</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/tools/staticdocs/docs/configuration/target>Targets</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/command>Commands</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry>Telemetry</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/interfaces>Interfaces</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/protocols>Protocols</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/accessors>Accessors</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/table>Tables</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/telemetry-screens>Screens</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/tools/staticdocs/docs/configuration/ssl-tls>SSL-TLS</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/tools>Tools</a><button aria-label="Expand sidebar category 'Tools'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/guides>Guides</a><button aria-label="Expand sidebar category 'Guides'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/development>Development</a><button aria-label="Expand sidebar category 'Development'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist" href=/tools/staticdocs/docs/meta>Meta</a><button aria-label="Expand sidebar category 'Meta'" aria-expanded=false type=button class="clean-btn menu__caret"></button></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/tools/staticdocs/docs/privacy>OpenC3, Inc. Privacy Policy</a></ul></nav></div></div></aside><main class=docMainContainer_namt><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_YAwJ"><div class=docItemContainer_Rv5Z><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_zCmv" aria-label=Breadcrumbs><ul class=breadcrumbs itemscope itemtype=https://schema.org/BreadcrumbList><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/tools/staticdocs/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_JFrk><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class=breadcrumbs__item><a class=breadcrumbs__link itemprop=item href=/tools/staticdocs/docs/configuration><span itemprop=name>Configuration</span></a><meta itemprop=position content=1><li itemscope itemprop=itemListElement itemtype=https://schema.org/ListItem class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link itemprop=name>Targets</span><meta itemprop=position content=2></ul></nav><div class="tocCollapsible_O_Qc theme-doc-toc-mobile tocMobile_tjDr"><button type=button class="clean-btn tocCollapsibleButton_htYj">On this page</button></div><div class="theme-doc-markdown markdown"><p>Targets are the external embedded systems that COSMOS connects to. Targets are defined by the top level <a href=/tools/staticdocs/docs/configuration/plugins#target-1>TARGET</a> keyword in the plugin.txt file. Each target is self contained in a target directory named after the target. In the root of the target directory there is a configuration file named target.txt which configures the individual target.</p>
2
2
  <header><h1>target.txt Keywords</h1></header>
3
3
  <h2 class="anchor anchorWithStickyNavbar_fF9Z" id=language>LANGUAGE<a href=#language class=hash-link aria-label="Direct link to LANGUAGE" title="Direct link to LANGUAGE">​</a></h2>
4
4
  <p><div class=right>(Since 5.11.1)</div><strong>Programming language of the target interfaces and microservices</strong><p></p>