{"id":23585479,"url":"https://github.com/ghdwlsgur/gossl","last_synced_at":"2026-01-12T01:03:52.436Z","repository":{"id":63427750,"uuid":"562711912","full_name":"ghdwlsgur/gossl","owner":"ghdwlsgur","description":"🛠 interactive CLI tool that helps to check and process the information of certificate and private key files, making it easy to apply the certificate to a web server","archived":false,"fork":false,"pushed_at":"2023-12-27T11:09:01.000Z","size":396,"stargazers_count":4,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-10T14:29:56.216Z","etag":null,"topics":["golang","md5","openssl","rsa","tls"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ghdwlsgur.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-07T04:57:10.000Z","updated_at":"2024-01-12T18:45:18.000Z","dependencies_parsed_at":"2023-02-16T14:30:55.821Z","dependency_job_id":"abb16112-892c-46be-a0bb-b2833c3882ff","html_url":"https://github.com/ghdwlsgur/gossl","commit_stats":{"total_commits":239,"total_committers":4,"mean_commits":59.75,"dds":"0.34309623430962344","last_synced_commit":"c04c958d490de8dd1e8ccf651b8a66418c56d953"},"previous_names":["ghdwlsgur/cert-check"],"tags_count":52,"template":false,"template_full_name":null,"purl":"pkg:github/ghdwlsgur/gossl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghdwlsgur%2Fgossl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghdwlsgur%2Fgossl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghdwlsgur%2Fgossl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghdwlsgur%2Fgossl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ghdwlsgur","download_url":"https://codeload.github.com/ghdwlsgur/gossl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghdwlsgur%2Fgossl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28330178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"ssl_error","status_checked_at":"2026-01-12T00:36:15.229Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","md5","openssl","rsa","tls"],"created_at":"2024-12-27T03:15:10.354Z","updated_at":"2026-01-12T01:03:52.419Z","avatar_url":"https://github.com/ghdwlsgur.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003cimg width=\"50%\" alt=\"govpn-logo\" src=\"https://user-images.githubusercontent.com/77400522/202766468-72b9c4ac-2191-4c8d-945e-97d96a75c3aa.png\"\u003e\n\n![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/ghdwlsgur/gossl?color=success\u0026label=version\u0026sort=semver)\n[![Go Report Card](https://goreportcard.com/badge/github.com/ghdwlsgur/gossl)](https://goreportcard.com/report/github.com/ghdwlsgur/gossl)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/77e2268c53a34ac7ae629a09e63c4419)](https://www.codacy.com/gh/ghdwlsgur/gossl/dashboard?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=ghdwlsgur/gossl\u0026utm_campaign=Badge_Grade)\n[![Maintainability](https://api.codeclimate.com/v1/badges/1d8e562559047191efd8/maintainability)](https://codeclimate.com/github/ghdwlsgur/gossl/maintainability)\n[![circle ci](https://circleci.com/gh/ghdwlsgur/gossl.svg?style=svg)](https://circleci.com/gh/ghdwlsgur/gossl)\n\n\u003c/div\u003e\n\n# Overview\n\nThis is an interactive CLI tool that helps to check and process the information of certificate and private key files, making it easy to apply the certificate to a web server.\n\n[Korean Document](https://ghdwlsgur.github.io/docs/OpenSource/gossl)\n\n# Chain of trust\n\n![스크린샷 2022-11-19 오후 5 26 49](https://user-images.githubusercontent.com/77400522/202842089-542edbb9-4c0a-44cb-93a9-0f3e61dd5ecf.png)\n\n- https://en.wikipedia.org/wiki/Chain_of_trust\n\nA chain of trust is designed to allow multiple users to create and use software on the system, which would be more difficult if all the keys were stored directly in hardware. It starts with hardware that will only boot from software that is digitally signed. The signing authority will only sign boot programs that enforce security, such as only running programs that are themselves signed, or only allowing signed code to have access to certain features of the machine. This process may continue for several layers.\n\nThis process results in a chain of trust. The final software can be trusted to have certain properties, because if it had been illegally modified its signature would be invalid, and the previous software would not have executed it. The previous software can be trusted, because it, in turn, would not have been loaded if its signature had been invalid. The trustworthiness of each layer is guaranteed by the one before, back to the trust anchor.\n\nIt would be possible to have the hardware check the suitability (signature) for every single piece of software. However, this would not produce the flexibility that a \"chain\" provides. In a chain, any given link can be replaced with a different version to provide different properties, without having to go all the way back to the trust anchor. This use of multiple layers is an application of a general technique to improve scalability, and is analogous to the use of multiple certificates in a certificate chain.\n\n# Installation\n\n### homebrew\n\n```bash\n\n# [install]\nbrew tap ghdwlsgur/gossl\nbrew install gossl\n\n# [upgrade]\nbrew upgrade gossl\n```\n\n### [Download](https://github.com/ghdwlsgur/gossl/releases)\n\n# How to use\n\n### `echo`\n\nThe tool displays a list of files with extensions ending in `pem, crt, ca, csr, cer, and key` in the current directory as options. If a single certificate file is selected, it indicates whether it is a chain certificate, root certificate, or domain certificate, and shows the `Md5 Hash` value, `expiration date`, `Subject` and `Issuer` information, and `Verify Host`. If the certificate is a domain certificate, it also provides additional information on `Subject Alternative Name`.\n\nThe option is provided to convert a `crt` file to `pem` format.\n\n```bash\ngossl echo\n```\n\n### `merge`\n\nWhen you select each individual file of domain certificate, chain certificate, and root certificate, it combines them into one certificate file in the order of domain certificate, chain certificate, and root certificate.\n\n```bash\ngossl merge -n [fileName]\n```\n\n### `split`\n\nShows the order in which the domain certificate, chain certificate, and root certificate are composed into a single certificate file, or splits the file into separate files named according to the type of certificate, such as `gossl_internetiate_1.crt`, `gossl_leaf_1.crt`, and `gossl_root_1.crt`, so that the type of each certificate can be identified.\n\n```bash\ngossl split # make file\ngossl split show # not make file\n```\n\n### `unlock`\n\nWhen a private key is password-protected, it prompts for the password and replaces the original key with an unencrypted one.\n\n```bash\ngossl unlock\n```\n\n### `zip`\n\nCompresses each file into a single archive.\n\n```bash\ngossl zip -n [fileName]\n```\n\n### `unzip`\n\nDecompresses the compressed file.\n\n```bash\ngossl unzip -n [fileName]\n```\n\n### `validate`\n\nIf the domain uses a CDN, it retrieves the domain certificate information applied to each edge device. If not, it retrieves the domain certificate information applied to the origin server.\n\n```bash\ngossl validate -n [domain]\n```\n\n### `check`\n\nIt retrieves the certificate information applied to the domain.\n\n```bash\ngossl check [domain]\n```\n\n### `download`\n\nIf you select one of the root certificates provided by gossl, it will be downloaded to the current directory.\n\n```bash\ngossl download\n```\n\n# License\n\ngossl is licensed under the [MIT](https://github.com/ghdwlsgur/gossl/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghdwlsgur%2Fgossl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fghdwlsgur%2Fgossl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghdwlsgur%2Fgossl/lists"}