@jjlmoya/utils-developer 1.4.0 → 1.6.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.
- package/package.json +2 -1
- package/src/category/i18n/de.ts +34 -0
- package/src/category/i18n/id.ts +34 -0
- package/src/category/i18n/it.ts +34 -0
- package/src/category/i18n/ja.ts +34 -0
- package/src/category/i18n/ko.ts +34 -0
- package/src/category/i18n/nl.ts +34 -0
- package/src/category/i18n/pl.ts +34 -0
- package/src/category/i18n/pt.ts +34 -0
- package/src/category/i18n/ru.ts +34 -0
- package/src/category/i18n/sv.ts +34 -0
- package/src/category/i18n/tr.ts +34 -0
- package/src/category/i18n/zh.ts +34 -0
- package/src/category/index.ts +13 -1
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/slug_language_code_format.test.ts +25 -0
- package/src/tests/slug_uniqueness.test.ts +87 -0
- package/src/tool/aspectRatio/i18n/de.ts +177 -0
- package/src/tool/aspectRatio/i18n/id.ts +177 -0
- package/src/tool/aspectRatio/i18n/it.ts +177 -0
- package/src/tool/aspectRatio/i18n/ja.ts +178 -0
- package/src/tool/aspectRatio/i18n/ko.ts +178 -0
- package/src/tool/aspectRatio/i18n/nl.ts +178 -0
- package/src/tool/aspectRatio/i18n/pl.ts +177 -0
- package/src/tool/aspectRatio/i18n/pt.ts +177 -0
- package/src/tool/aspectRatio/i18n/ru.ts +177 -0
- package/src/tool/aspectRatio/i18n/sv.ts +177 -0
- package/src/tool/aspectRatio/i18n/tr.ts +177 -0
- package/src/tool/aspectRatio/i18n/zh.ts +178 -0
- package/src/tool/aspectRatio/index.ts +15 -7
- package/src/tool/calculadoraTiempoDatos/i18n/de.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/id.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/it.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/index.ts +15 -7
- package/src/tool/colorConverter/i18n/de.ts +126 -0
- package/src/tool/colorConverter/i18n/id.ts +126 -0
- package/src/tool/colorConverter/i18n/it.ts +126 -0
- package/src/tool/colorConverter/i18n/ja.ts +127 -0
- package/src/tool/colorConverter/i18n/ko.ts +127 -0
- package/src/tool/colorConverter/i18n/nl.ts +126 -0
- package/src/tool/colorConverter/i18n/pl.ts +126 -0
- package/src/tool/colorConverter/i18n/pt.ts +126 -0
- package/src/tool/colorConverter/i18n/ru.ts +126 -0
- package/src/tool/colorConverter/i18n/sv.ts +126 -0
- package/src/tool/colorConverter/i18n/tr.ts +126 -0
- package/src/tool/colorConverter/i18n/zh.ts +127 -0
- package/src/tool/colorConverter/index.ts +15 -7
- package/src/tool/conversorExcelCsvHtml/i18n/de.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/id.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/it.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/index.ts +15 -7
- package/src/tool/cronGenerator/i18n/de.ts +192 -0
- package/src/tool/cronGenerator/i18n/es.ts +1 -0
- package/src/tool/cronGenerator/i18n/fr.ts +2 -1
- package/src/tool/cronGenerator/i18n/id.ts +192 -0
- package/src/tool/cronGenerator/i18n/it.ts +192 -0
- package/src/tool/cronGenerator/i18n/ja.ts +192 -0
- package/src/tool/cronGenerator/i18n/ko.ts +192 -0
- package/src/tool/cronGenerator/i18n/nl.ts +192 -0
- package/src/tool/cronGenerator/i18n/pl.ts +192 -0
- package/src/tool/cronGenerator/i18n/pt.ts +192 -0
- package/src/tool/cronGenerator/i18n/ru.ts +192 -0
- package/src/tool/cronGenerator/i18n/sv.ts +192 -0
- package/src/tool/cronGenerator/i18n/tr.ts +192 -0
- package/src/tool/cronGenerator/i18n/zh.ts +192 -0
- package/src/tool/cronGenerator/index.ts +15 -7
- package/src/tool/cssSpecificityCalculator/i18n/de.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/id.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/it.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/ja.ts +169 -0
- package/src/tool/cssSpecificityCalculator/i18n/ko.ts +169 -0
- package/src/tool/cssSpecificityCalculator/i18n/nl.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/pl.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/pt.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/ru.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/sv.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/tr.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/zh.ts +169 -0
- package/src/tool/cssSpecificityCalculator/index.ts +15 -7
- package/src/tool/cssToInlineConverter/i18n/de.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/id.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/it.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/ja.ts +161 -0
- package/src/tool/cssToInlineConverter/i18n/ko.ts +161 -0
- package/src/tool/cssToInlineConverter/i18n/nl.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/pl.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/pt.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/ru.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/sv.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/tr.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/zh.ts +161 -0
- package/src/tool/cssToInlineConverter/index.ts +15 -7
- package/src/tool/duplicateCssRemover/i18n/de.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/id.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/it.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/ja.ts +168 -0
- package/src/tool/duplicateCssRemover/i18n/ko.ts +168 -0
- package/src/tool/duplicateCssRemover/i18n/nl.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/pl.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/pt.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/ru.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/sv.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/tr.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/zh.ts +168 -0
- package/src/tool/duplicateCssRemover/index.ts +15 -7
- package/src/tool/generadorSecurityTxt/i18n/de.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/id.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/it.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ja.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ko.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/nl.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/pl.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/pt.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ru.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/sv.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/tr.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/zh.ts +174 -0
- package/src/tool/generadorSecurityTxt/index.ts +15 -7
- package/src/tool/hashGenerator/i18n/de.ts +119 -0
- package/src/tool/hashGenerator/i18n/id.ts +119 -0
- package/src/tool/hashGenerator/i18n/it.ts +118 -0
- package/src/tool/hashGenerator/i18n/ja.ts +119 -0
- package/src/tool/hashGenerator/i18n/ko.ts +119 -0
- package/src/tool/hashGenerator/i18n/nl.ts +119 -0
- package/src/tool/hashGenerator/i18n/pl.ts +118 -0
- package/src/tool/hashGenerator/i18n/pt.ts +118 -0
- package/src/tool/hashGenerator/i18n/ru.ts +119 -0
- package/src/tool/hashGenerator/i18n/sv.ts +119 -0
- package/src/tool/hashGenerator/i18n/tr.ts +118 -0
- package/src/tool/hashGenerator/i18n/zh.ts +119 -0
- package/src/tool/hashGenerator/index.ts +15 -7
- package/src/tool/inspectorCertificadosSsl/i18n/de.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/id.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/it.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/index.ts +24 -0
- package/src/tool/jsonFormatter/i18n/de.ts +157 -0
- package/src/tool/jsonFormatter/i18n/es.ts +1 -0
- package/src/tool/jsonFormatter/i18n/fr.ts +2 -1
- package/src/tool/jsonFormatter/i18n/id.ts +157 -0
- package/src/tool/jsonFormatter/i18n/it.ts +156 -0
- package/src/tool/jsonFormatter/i18n/ja.ts +157 -0
- package/src/tool/jsonFormatter/i18n/ko.ts +157 -0
- package/src/tool/jsonFormatter/i18n/nl.ts +157 -0
- package/src/tool/jsonFormatter/i18n/pl.ts +156 -0
- package/src/tool/jsonFormatter/i18n/pt.ts +156 -0
- package/src/tool/jsonFormatter/i18n/ru.ts +157 -0
- package/src/tool/jsonFormatter/i18n/sv.ts +157 -0
- package/src/tool/jsonFormatter/i18n/tr.ts +157 -0
- package/src/tool/jsonFormatter/i18n/zh.ts +157 -0
- package/src/tool/jsonFormatter/index.ts +15 -7
- package/src/tool/keycode/i18n/de.ts +161 -0
- package/src/tool/keycode/i18n/es.ts +1 -0
- package/src/tool/keycode/i18n/fr.ts +2 -1
- package/src/tool/keycode/i18n/id.ts +161 -0
- package/src/tool/keycode/i18n/it.ts +161 -0
- package/src/tool/keycode/i18n/ja.ts +161 -0
- package/src/tool/keycode/i18n/ko.ts +161 -0
- package/src/tool/keycode/i18n/nl.ts +161 -0
- package/src/tool/keycode/i18n/pl.ts +161 -0
- package/src/tool/keycode/i18n/pt.ts +160 -0
- package/src/tool/keycode/i18n/ru.ts +160 -0
- package/src/tool/keycode/i18n/sv.ts +160 -0
- package/src/tool/keycode/i18n/tr.ts +160 -0
- package/src/tool/keycode/i18n/zh.ts +161 -0
- package/src/tool/keycode/index.ts +15 -7
- package/src/tool/llmCostCalculator/i18n/de.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/fr.ts +2 -1
- package/src/tool/llmCostCalculator/i18n/id.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/it.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/ja.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/ko.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/nl.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/pl.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/pt.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/ru.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/sv.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/tr.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/zh.ts +166 -0
- package/src/tool/llmCostCalculator/index.ts +24 -0
- package/src/tool/mobileMockupGenerator/i18n/de.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/id.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/it.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/ja.ts +122 -0
- package/src/tool/mobileMockupGenerator/i18n/ko.ts +122 -0
- package/src/tool/mobileMockupGenerator/i18n/nl.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/pl.ts +31 -0
- package/src/tool/mobileMockupGenerator/i18n/pt.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/ru.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/sv.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/tr.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/zh.ts +122 -0
- package/src/tool/mobileMockupGenerator/index.ts +24 -0
- package/src/tool/musicalTypography/i18n/de.ts +179 -0
- package/src/tool/musicalTypography/i18n/id.ts +179 -0
- package/src/tool/musicalTypography/i18n/it.ts +179 -0
- package/src/tool/musicalTypography/i18n/ja.ts +180 -0
- package/src/tool/musicalTypography/i18n/ko.ts +180 -0
- package/src/tool/musicalTypography/i18n/nl.ts +179 -0
- package/src/tool/musicalTypography/i18n/pl.ts +179 -0
- package/src/tool/musicalTypography/i18n/pt.ts +101 -0
- package/src/tool/musicalTypography/i18n/ru.ts +47 -0
- package/src/tool/musicalTypography/i18n/sv.ts +29 -0
- package/src/tool/musicalTypography/i18n/tr.ts +29 -0
- package/src/tool/musicalTypography/i18n/zh.ts +30 -0
- package/src/tool/musicalTypography/index.ts +15 -7
- package/src/tool/placeholderGenerator/i18n/de.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/id.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/it.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/ja.ts +177 -0
- package/src/tool/placeholderGenerator/i18n/ko.ts +177 -0
- package/src/tool/placeholderGenerator/i18n/nl.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/pl.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/pt.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/ru.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/sv.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/tr.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/zh.ts +177 -0
- package/src/tool/placeholderGenerator/index.ts +24 -0
- package/src/tool/promptLibrary/i18n/de.ts +131 -0
- package/src/tool/promptLibrary/i18n/id.ts +131 -0
- package/src/tool/promptLibrary/i18n/it.ts +131 -0
- package/src/tool/promptLibrary/i18n/ja.ts +132 -0
- package/src/tool/promptLibrary/i18n/ko.ts +132 -0
- package/src/tool/promptLibrary/i18n/nl.ts +131 -0
- package/src/tool/promptLibrary/i18n/pl.ts +28 -0
- package/src/tool/promptLibrary/i18n/pt.ts +101 -0
- package/src/tool/promptLibrary/i18n/ru.ts +101 -0
- package/src/tool/promptLibrary/i18n/sv.ts +93 -0
- package/src/tool/promptLibrary/i18n/tr.ts +93 -0
- package/src/tool/promptLibrary/i18n/zh.ts +94 -0
- package/src/tool/promptLibrary/index.ts +24 -0
- package/src/tool/readabilityCalculator/i18n/de.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/id.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/it.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/ja.ts +134 -0
- package/src/tool/readabilityCalculator/i18n/ko.ts +134 -0
- package/src/tool/readabilityCalculator/i18n/nl.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/pl.ts +29 -0
- package/src/tool/readabilityCalculator/i18n/pt.ts +91 -0
- package/src/tool/readabilityCalculator/i18n/ru.ts +91 -0
- package/src/tool/readabilityCalculator/i18n/sv.ts +43 -0
- package/src/tool/readabilityCalculator/i18n/tr.ts +43 -0
- package/src/tool/readabilityCalculator/i18n/zh.ts +44 -0
- package/src/tool/readabilityCalculator/index.ts +24 -0
- package/src/tool/svgSanitizer/i18n/de.ts +125 -0
- package/src/tool/svgSanitizer/i18n/id.ts +125 -0
- package/src/tool/svgSanitizer/i18n/it.ts +125 -0
- package/src/tool/svgSanitizer/i18n/ja.ts +126 -0
- package/src/tool/svgSanitizer/i18n/ko.ts +126 -0
- package/src/tool/svgSanitizer/i18n/nl.ts +125 -0
- package/src/tool/svgSanitizer/i18n/pl.ts +125 -0
- package/src/tool/svgSanitizer/i18n/pt.ts +30 -0
- package/src/tool/svgSanitizer/i18n/ru.ts +126 -0
- package/src/tool/svgSanitizer/i18n/sv.ts +126 -0
- package/src/tool/svgSanitizer/i18n/tr.ts +126 -0
- package/src/tool/svgSanitizer/i18n/zh.ts +126 -0
- package/src/tool/svgSanitizer/index.ts +24 -0
- package/src/tool/svgToCss/i18n/de.ts +174 -0
- package/src/tool/svgToCss/i18n/id.ts +174 -0
- package/src/tool/svgToCss/i18n/it.ts +174 -0
- package/src/tool/svgToCss/i18n/ja.ts +175 -0
- package/src/tool/svgToCss/i18n/ko.ts +175 -0
- package/src/tool/svgToCss/i18n/nl.ts +174 -0
- package/src/tool/svgToCss/i18n/pl.ts +174 -0
- package/src/tool/svgToCss/i18n/pt.ts +174 -0
- package/src/tool/svgToCss/i18n/ru.ts +174 -0
- package/src/tool/svgToCss/i18n/sv.ts +174 -0
- package/src/tool/svgToCss/i18n/tr.ts +174 -0
- package/src/tool/svgToCss/i18n/zh.ts +175 -0
- package/src/tool/svgToCss/index.ts +15 -7
- package/src/tool/urlCleaner/i18n/de.ts +116 -0
- package/src/tool/urlCleaner/i18n/id.ts +116 -0
- package/src/tool/urlCleaner/i18n/it.ts +116 -0
- package/src/tool/urlCleaner/i18n/ja.ts +117 -0
- package/src/tool/urlCleaner/i18n/ko.ts +117 -0
- package/src/tool/urlCleaner/i18n/nl.ts +116 -0
- package/src/tool/urlCleaner/i18n/pl.ts +29 -0
- package/src/tool/urlCleaner/i18n/pt.ts +43 -0
- package/src/tool/urlCleaner/i18n/ru.ts +43 -0
- package/src/tool/urlCleaner/i18n/sv.ts +43 -0
- package/src/tool/urlCleaner/i18n/tr.ts +43 -0
- package/src/tool/urlCleaner/i18n/zh.ts +44 -0
- package/src/tool/urlCleaner/index.ts +24 -0
- package/src/tool/urlEncoderDecoder/i18n/de.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/id.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/it.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/ja.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/ko.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/nl.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/pl.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/pt.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/ru.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/sv.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/tr.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/zh.ts +163 -0
- package/src/tool/urlEncoderDecoder/index.ts +15 -7
- package/src/tool/utmGenerator/i18n/de.ts +118 -0
- package/src/tool/utmGenerator/i18n/id.ts +118 -0
- package/src/tool/utmGenerator/i18n/it.ts +118 -0
- package/src/tool/utmGenerator/i18n/ja.ts +118 -0
- package/src/tool/utmGenerator/i18n/ko.ts +118 -0
- package/src/tool/utmGenerator/i18n/nl.ts +118 -0
- package/src/tool/utmGenerator/i18n/pl.ts +117 -0
- package/src/tool/utmGenerator/i18n/pt.ts +118 -0
- package/src/tool/utmGenerator/i18n/ru.ts +118 -0
- package/src/tool/utmGenerator/i18n/sv.ts +118 -0
- package/src/tool/utmGenerator/i18n/tr.ts +117 -0
- package/src/tool/utmGenerator/i18n/zh.ts +118 -0
- package/src/tool/utmGenerator/index.ts +15 -7
- package/src/types.ts +1 -2
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'certifikatgranskare-ssl-tls';
|
|
6
|
+
const title = 'Online SSL/TLS certifikatgranskare Visa PEM och CRT filer';
|
|
7
|
+
const description = 'Analysera SSL-certifikatfiler (.pem, .crt, .der) lokalt. Kontrollera utgångsdatum, utfärdare, ämnen och SHA-256-fingeravtryck utan att din data lämnar webbläsaren.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Är det säkert att analysera mitt SSL-certifikat på denna webbplats?',
|
|
12
|
+
answer: 'Absolut. Det här verktyget körs 100% på klientsidan. När du drar ditt .pem eller .crt fil läser webbläsaren data lokalt och skickar den aldrig till någon server. Fullständig integritet.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Vilka certifikatformat stöds?',
|
|
16
|
+
answer: 'Verktyget stöder de vanligaste formaten: PEM (Base64-kodad med "BEGIN CERTIFICATE"-rubriker) och DER (binärt format), som vanligtvis har .pem-, .crt-, .cer- eller .der-tillägg.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Kan jag se utgångsdatumet för en .crt fil?',
|
|
20
|
+
answer: 'Ja, när du laddar filen ser du omedelbar avsnittet "Giltighet" som visar det exakta utgångsdatumet och huruvida certifikatet fortfarande är giltigt idag.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Vad gör certifikatutfärdaren?',
|
|
24
|
+
answer: 'Utfärdaren (Issuer) anger vilken certifikatmyndighet (CA) som validerade webbplatsens identitet. Det är viktigt att veta om certifikatet kommer att kännas igen av kommersiella webbläsare.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Hur beräknas SHA-256-fingeravtryck?',
|
|
28
|
+
answer: 'De beräknas genom att tillämpa en hash-algoritm direkt på certifikatets binära innehål. De tjänar till att verifiera att filen inte har manipulerats och matchar det servern förväntar.',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howToData = [
|
|
33
|
+
{ name: 'Hitta din fil', text: 'Lokalisera filen med filnamnstillägg .pem, .crt, .cer eller .der på din dator.' },
|
|
34
|
+
{ name: 'Dra och släpp', text: 'Bara dra filen över det prickade området ovan.' },
|
|
35
|
+
{ name: 'Visa resultat', text: 'Omedelbar ser du vem som utfärdade certifikatet, för vem, när det går ut och dess fingeravtryck.' },
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
39
|
+
'@context': 'https://schema.org',
|
|
40
|
+
'@type': 'FAQPage',
|
|
41
|
+
mainEntity: faqData.map((item) => ({
|
|
42
|
+
'@type': 'Question',
|
|
43
|
+
name: item.question,
|
|
44
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
45
|
+
})),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
49
|
+
'@context': 'https://schema.org',
|
|
50
|
+
'@type': 'HowTo',
|
|
51
|
+
name: title,
|
|
52
|
+
description,
|
|
53
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
57
|
+
'@context': 'https://schema.org',
|
|
58
|
+
'@type': 'SoftwareApplication',
|
|
59
|
+
name: title,
|
|
60
|
+
description,
|
|
61
|
+
applicationCategory: 'UtilityApplication',
|
|
62
|
+
operatingSystem: 'All',
|
|
63
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
64
|
+
inLanguage: 'sv',
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const ui: InspectorCertificadosSslUI = {
|
|
68
|
+
labelAnalyzeCertificate: 'Analysera certifikat',
|
|
69
|
+
dragDropText: 'Dra din .pem-, .crt- eller .cer-fil här',
|
|
70
|
+
dragDropSubtext: '(100% lokal bearbetning i din webbläsare)',
|
|
71
|
+
cardStatusTitle: 'Giltighet',
|
|
72
|
+
cardSubjectTitle: 'Ämne (Ägare)',
|
|
73
|
+
cardIssuerTitle: 'Utfärdare (CA)',
|
|
74
|
+
cardFingerprintsTitle: 'Fingeravtryck',
|
|
75
|
+
cardTechnicalTitle: 'Tekniska detaljer',
|
|
76
|
+
labelValidityStatus: 'Status:',
|
|
77
|
+
labelExpiryDate: 'Utgår',
|
|
78
|
+
labelIssueDate: 'Utfärdad',
|
|
79
|
+
labelSha256: 'SHA-256-fingeravtryck',
|
|
80
|
+
labelSha1: 'SHA-1-fingeravtryck',
|
|
81
|
+
labelSignatureAlgorithm: 'Signaturalgoritm',
|
|
82
|
+
labelVersion: 'X.509-version',
|
|
83
|
+
labelSerialNumber: 'Serienummer',
|
|
84
|
+
labelCommonName: 'Gemensamt namn',
|
|
85
|
+
labelOrganization: 'Organisation',
|
|
86
|
+
labelOrgUnit: 'Organisationsenhet',
|
|
87
|
+
labelLocality: 'Ort',
|
|
88
|
+
labelState: 'Stat/Provins',
|
|
89
|
+
labelCountry: 'Land',
|
|
90
|
+
labelEmail: 'E-post',
|
|
91
|
+
statusValid: 'Giltigt',
|
|
92
|
+
statusExpired: 'Utgånget',
|
|
93
|
+
errorMessageInvalid: 'Ogiltig fil.',
|
|
94
|
+
supportedFormats: '.pem, .crt, .cer, .der',
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const content: ToolLocaleContent<InspectorCertificadosSslUI> = {
|
|
98
|
+
slug,
|
|
99
|
+
title,
|
|
100
|
+
description,
|
|
101
|
+
ui,
|
|
102
|
+
faqTitle: 'Vanliga frågor',
|
|
103
|
+
faq: faqData,
|
|
104
|
+
bibliographyTitle: 'Tekniska resurser för SSL/TLS certifikat',
|
|
105
|
+
bibliography: [
|
|
106
|
+
{ name: 'RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile', url: 'https://datatracker.ietf.org/doc/html/rfc5280' },
|
|
107
|
+
{ name: 'NIST: FIPS 180-4 Secure Hash Standard (SHA)', url: 'https://csrc.nist.gov/publications/detail/fips/180/4/final' },
|
|
108
|
+
{ name: 'Mozilla: SSL/TLS Encryption Overview', url: 'https://developer.mozilla.org/en-US/docs/Glossary/TLS' },
|
|
109
|
+
{ name: 'OpenSSL: X.509 Certificate Format Documentation', url: 'https://www.openssl.org/docs/man1.1.1/man1/x509.html' },
|
|
110
|
+
],
|
|
111
|
+
howTo: howToData,
|
|
112
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
|
+
seo: [
|
|
114
|
+
{ type: 'title', text: 'Vad är en SSL/TLS certifikatgranskare och varför behöver du en?', level: 2 },
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: 'I världen av webbutveckling och cybersäkerhet är <strong>SSL (Secure Sockets Layer) och TLS (Transport Layer Security)-certifikat</strong> grunden för förtroende. Ett digitalt certifikat är bara en fil som länkar en kryptografisk nyckel till en organisations eller domäns data. Dessa filer kommer dock ofta i binärt format (.der) eller Base64-kodat (.pem, .crt) som inte är läsbar vid första anblicken.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Vår <strong>SSL/TLS certifikatgranskare</strong> gör att du kan "öppna" dessa filer visuellt och säkert. Till skillnad från verktyg som frågar en offentlig domän (som det berömda SSL Labs-testet) fungerar detta verktyg direkt med filen på din enhet. Detta är viktigt när du konfigurerar Nginx-, Apache-servrar eller laddar certifikat i AWS eller Google Cloud Load Balancer, och du behöver verifiera att filen i din hand är korrekt innan du laddar upp den.',
|
|
122
|
+
},
|
|
123
|
+
{ type: 'title', text: 'Hur man inspekterar en .pem eller .crt fil steg för steg', level: 2 },
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'Att analysera ett certifikat med vårt verktyg är extremt enkelt och kräver ingen konsol (OpenSSL) kunskap. Följ dessa steg:',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'list',
|
|
130
|
+
items: [
|
|
131
|
+
'<strong>Hitta din fil:</strong> Lokalisera filen med filnamnstillägg .pem, .crt, .cer eller .der på din dator.',
|
|
132
|
+
'<strong>Dra och släpp:</strong> Bara dra filen över det prickade området ovan.',
|
|
133
|
+
'<strong>Visa resultat:</strong> Omedelbar ser du vem som utfärdade certifikatet, för vem, när det går ut och dess fingeravtryck.',
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'tip',
|
|
138
|
+
title: 'Fullständig integritet',
|
|
139
|
+
html: 'Den viktigaste delen av denna process är <strong>integritet</strong>. Filen laddas aldrig upp till våra servrar. All parsing av certifikatets ASN.1-struktur sker i din webbläsares RAM. Fullständig säkerhet för dina offentliga nycklar.',
|
|
140
|
+
},
|
|
141
|
+
{ type: 'title', text: 'Nyckelfält du ser när du analyserar ditt certifikat', level: 2 },
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'När du analyserar ditt certifikat bryter vi ned den viktigaste tekniska informationen så att du kan verifiera den på en gång:',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'list',
|
|
148
|
+
items: [
|
|
149
|
+
'<strong>Ämne:</strong> Visar ägarens data, inklusive vanligt namn (CN), organisation och plats.',
|
|
150
|
+
'<strong>Utfärdare:</strong> Identifierar certifikatmyndigheten (CA) som signerade certifikatet (t.ex. Let\'s Encrypt, DigiCert).',
|
|
151
|
+
'<strong>Giltighetsperiod:</strong> Visar det exakta utfärdandedatumet och det kritiska utgångsdatumet.',
|
|
152
|
+
'<strong>Fingeravtryck:</strong> SHA-256 och SHA-1 fingeravtryck tjänar till att verifiera filens integritet.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{ type: 'title', text: 'Format som stöds: PEM, CRT, CER och DER', level: 2 },
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'Det finns flera certifikatfilformat och ibland kan det vara förvirrande. Vårt verktyg är kompatibelt med de vanligaste:',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'list',
|
|
162
|
+
items: [
|
|
163
|
+
'<strong>PEM (.pem, .crt, .cer):</strong> Det vanligaste formatet på Linux och webbservrar. Börjar med raden <code>-----BEGIN CERTIFICATE-----</code>.',
|
|
164
|
+
'<strong>DER (.der, .cer):</strong> Det binära formatet. Mycket använt i Windows-miljöer (Java, Active Directory) och är vanligtvis svårare att läsa utan specialiserade verktyg.',
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: 'paragraph',
|
|
169
|
+
html: 'Även om din fil har ett ovanligt tillägg, om den interna strukturen är ett standard X.509-certifikat, kan vår <strong>node-forge</strong>-driven motor tolka det utan problem.',
|
|
170
|
+
},
|
|
171
|
+
{ type: 'title', text: 'Varför använda det här verktyget istället för OpenSSL?', level: 2 },
|
|
172
|
+
{
|
|
173
|
+
type: 'paragraph',
|
|
174
|
+
html: 'OpenSSL är kryptografins schweiziska armé kniv, men dess kommandon är svåra att komma ihåg. För att visa ett certifikat från konsolen måste du skriva:',
|
|
175
|
+
},
|
|
176
|
+
{ type: 'code', text: 'openssl x509 -in certificado.crt -text -noout' },
|
|
177
|
+
{
|
|
178
|
+
type: 'paragraph',
|
|
179
|
+
html: 'Vårt verktyg erbjuder tydliga fördelar för dagligt arbetsflöde:',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'list',
|
|
183
|
+
items: [
|
|
184
|
+
'<strong>Hastighet:</strong> Ingen anledning att öppna terminalen eller komma ihåg komplexa flaggor.',
|
|
185
|
+
'<strong>Visuell:</strong> Vi formaterar fältnamn (Locality, Organization) för att vara läsbara och inte kortkoder som "L" eller "O".',
|
|
186
|
+
'<strong>Giltighetsvarningar:</strong> Vi beräknar automatiskt om certifikatet är giltigt idag, vilket sparar dig från att manuellt kontrollera aktuellt datum mot certifikatdatum.',
|
|
187
|
+
'<strong>Plattformsoberoende:</strong> Fungerar på vilket operativsystem som helst med en modern webbläsare, inga beroenden att installera.',
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
{ type: 'title', text: 'Säkerhet och integritet: ditt certifikat lämnar aldrig din RAM', level: 2 },
|
|
191
|
+
{
|
|
192
|
+
type: 'paragraph',
|
|
193
|
+
html: 'Som utvecklare vet jag hur kritisk denna typ av information är att hantera. Även om ett certifikat är tekniskt <strong>offentlig information</strong> (skickad till vilken webbläsare som helst som besöker din webbplats), är det fortfarande god sed att inte ladda upp filer till externa servrar i onödan.',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
type: 'paragraph',
|
|
197
|
+
html: 'Det här verktyget använder JavaScript som körs strikt på klientsidan. När du drar filen läser vi innehållet och behandlar det lokalt. Du kan verifiera detta genom att koppla ifrån internet: verktyget kommer att fortsätta att fungera på exakt samma sätt.',
|
|
198
|
+
},
|
|
199
|
+
{ type: 'title', text: 'Vanliga användningsfall för SSL granskaren', level: 2 },
|
|
200
|
+
{
|
|
201
|
+
type: 'paragraph',
|
|
202
|
+
html: 'När skulle det vara användbart att bokmärka denna sida?',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: 'list',
|
|
206
|
+
items: [
|
|
207
|
+
'<strong>Serverfelsökning:</strong> När du installerar ett certifikat och webbplatsen fortsätter att ge fel, för att verifiera att du inte av misstag har laddat det gamla certifikatet.',
|
|
208
|
+
'<strong>Kedjevarifiering:</strong> För att se om en fil innehåller slutcertifikatet eller ett mellanliggande certifikat.',
|
|
209
|
+
'<strong>Tillgångsgranskning:</strong> För att kontrollera vilken certifikatmyndighet som användes i ett gammalt projekt.',
|
|
210
|
+
'<strong>Kopieintegritet:</strong> Vid flytt av certifikat mellan servrar, för att säkerställa att filen inte är skadad genom att jämföra dess SHA-256-fingeravtryck.',
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'ssl-sertifika-inceleme';
|
|
6
|
+
const title = 'Çevrimiçi SSL/TLS Sertifika İnceleme PEM ve CRT Dosyalarını Görüntüle';
|
|
7
|
+
const description = 'SSL sertifika dosyalarını (.pem, .crt, .der) yerel olarak analiz edin. Sona erme tarihlerini, yayımcıları, konuları ve SHA-256 parmak izlerini kontrol edin ve verileriniz tarayıcınızdan çıkmaz.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'SSL sertifikamı bu web sitesinde analiz etmek güvenli midir?',
|
|
12
|
+
answer: 'Evet, kesinlikle güvenlidir. Bu yardımcı program 100% istemci tarafında çalışır. .pem veya .crt dosyanızı sürüklediğinizde tarayıcı verileri yerel olarak okur ve hiçbir sunucuya göndermez. Tamamen özel.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Hangi sertifika biçimleri desteklenir?',
|
|
16
|
+
answer: 'Araç en yaygın biçimleri destekler: PEM ("BEGIN CERTIFICATE" başlıklarıyla Base64 kodlu) ve DER (ikili biçim), genellikle .pem, .crt, .cer veya .der uzantılarına sahiptir.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '.crt dosyasının sona erme tarihini görebilir miyim?',
|
|
20
|
+
answer: 'Evet, dosyayı yüklediğinizde hemen "Geçerlilik Durumu" bölümünü göreceksiniz ve bu, tam sona erme tarihini ve sertifikanın bugün geçerli olup olmadığını gösterir.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Sertifika yayımcısı ne yapar?',
|
|
24
|
+
answer: 'Yayımcı (Issuer), sitenin kimliğini doğrulayan Sertifika Otoritesini (CA) gösterir. Sertifikanın ticari tarayıcılar tarafından tanınıp tanınmayacağını bilmek önemlidir.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'SHA-256 parmak izleri nasıl hesaplanır?',
|
|
28
|
+
answer: 'Sertifikanın ikili içeriğine doğrudan hash algoritması uygulanarak hesaplanırlar. Dosyanın değiştirilmediğini ve sunucunun beklediği ile eşleştiğini doğrulamaya yarar.',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howToData = [
|
|
33
|
+
{ name: 'Dosyanızı bulun', text: 'Bilgisayarınızda .pem, .crt, .cer veya .der uzantılı dosyayı bulun.' },
|
|
34
|
+
{ name: 'Sürükle ve bırak', text: 'Dosyayı yukarıdaki noktalı alana sürükleyin.' },
|
|
35
|
+
{ name: 'Sonuçları görüntüle', text: 'Hemen, sertifikayı kimin yayımladığını, kimin için, ne zaman sona ereceğini ve parmak izlerini göreceksiniz.' },
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
39
|
+
'@context': 'https://schema.org',
|
|
40
|
+
'@type': 'FAQPage',
|
|
41
|
+
mainEntity: faqData.map((item) => ({
|
|
42
|
+
'@type': 'Question',
|
|
43
|
+
name: item.question,
|
|
44
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
45
|
+
})),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
49
|
+
'@context': 'https://schema.org',
|
|
50
|
+
'@type': 'HowTo',
|
|
51
|
+
name: title,
|
|
52
|
+
description,
|
|
53
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
57
|
+
'@context': 'https://schema.org',
|
|
58
|
+
'@type': 'SoftwareApplication',
|
|
59
|
+
name: title,
|
|
60
|
+
description,
|
|
61
|
+
applicationCategory: 'UtilityApplication',
|
|
62
|
+
operatingSystem: 'All',
|
|
63
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
64
|
+
inLanguage: 'tr',
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const ui: InspectorCertificadosSslUI = {
|
|
68
|
+
labelAnalyzeCertificate: 'Sertifikayı Analiz Et',
|
|
69
|
+
dragDropText: '.pem, .crt veya .cer dosyanızı buraya sürükleyin',
|
|
70
|
+
dragDropSubtext: '(tarayıcınızda 100% yerel işlem)',
|
|
71
|
+
cardStatusTitle: 'Geçerlilik Durumu',
|
|
72
|
+
cardSubjectTitle: 'Konu (Sahibi)',
|
|
73
|
+
cardIssuerTitle: 'Yayımcı (CA)',
|
|
74
|
+
cardFingerprintsTitle: 'Parmak İzleri',
|
|
75
|
+
cardTechnicalTitle: 'Teknik Detaylar',
|
|
76
|
+
labelValidityStatus: 'Durum:',
|
|
77
|
+
labelExpiryDate: 'Sona Eriş Tarihi',
|
|
78
|
+
labelIssueDate: 'Veriliş Tarihi',
|
|
79
|
+
labelSha256: 'SHA-256 Parmak İzi',
|
|
80
|
+
labelSha1: 'SHA-1 Parmak İzi',
|
|
81
|
+
labelSignatureAlgorithm: 'İmza Algoritması',
|
|
82
|
+
labelVersion: 'X.509 Sürümü',
|
|
83
|
+
labelSerialNumber: 'Seri Numarası',
|
|
84
|
+
labelCommonName: 'Ortak Ad',
|
|
85
|
+
labelOrganization: 'Kuruluş',
|
|
86
|
+
labelOrgUnit: 'Kuruluş Birimi',
|
|
87
|
+
labelLocality: 'Yerellik',
|
|
88
|
+
labelState: 'Devlet/İl',
|
|
89
|
+
labelCountry: 'Ülke',
|
|
90
|
+
labelEmail: 'E-posta',
|
|
91
|
+
statusValid: 'Geçerli',
|
|
92
|
+
statusExpired: 'Süresi Doldu',
|
|
93
|
+
errorMessageInvalid: 'Geçersiz dosya.',
|
|
94
|
+
supportedFormats: '.pem, .crt, .cer, .der',
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const content: ToolLocaleContent<InspectorCertificadosSslUI> = {
|
|
98
|
+
slug,
|
|
99
|
+
title,
|
|
100
|
+
description,
|
|
101
|
+
ui,
|
|
102
|
+
faqTitle: 'Sık Sorulan Sorular',
|
|
103
|
+
faq: faqData,
|
|
104
|
+
bibliographyTitle: 'SSL/TLS Sertifikaları Hakkında Teknik Kaynaklar',
|
|
105
|
+
bibliography: [
|
|
106
|
+
{ name: 'RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile', url: 'https://datatracker.ietf.org/doc/html/rfc5280' },
|
|
107
|
+
{ name: 'NIST: FIPS 180-4 Secure Hash Standard (SHA)', url: 'https://csrc.nist.gov/publications/detail/fips/180/4/final' },
|
|
108
|
+
{ name: 'Mozilla: SSL/TLS Encryption Overview', url: 'https://developer.mozilla.org/en-US/docs/Glossary/TLS' },
|
|
109
|
+
{ name: 'OpenSSL: X.509 Certificate Format Documentation', url: 'https://www.openssl.org/docs/man1.1.1/man1/x509.html' },
|
|
110
|
+
],
|
|
111
|
+
howTo: howToData,
|
|
112
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
|
+
seo: [
|
|
114
|
+
{ type: 'title', text: 'SSL/TLS Sertifika İnceleme Nedir ve Neden Gerekli?', level: 2 },
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: 'Web geliştirme ve siber güvenlik dünyasında <strong>SSL (Secure Sockets Layer) ve TLS (Transport Layer Security) sertifikaları</strong> güvenin temelini oluşturur. Dijital sertifika, kriptografik anahtarı kuruluş veya alan adı verilerine bağlayan bir dosydan ibarettir. Ancak bu dosyalar genellikle ikili biçim (.der) veya Base64 kodlu (.pem, .crt) ve ilk bakışta okunaklı değildir.',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'Bizim <strong>SSL/TLS Sertifika İncelemeci</strong> bu dosyaları görsel ve güvenli bir şekilde "açmanızı" sağlar. Herkese açık bir etki alanını sorgulayan araçların (ünlü SSL Labs testi gibi) aksine, bu yardımcı program doğrudan cihazınızdaki dosya ile çalışır. Bu, Nginx, Apache sunucuları yapılandırırken veya AWS veya Google Cloud Load Balancer\'da sertifika yüklerken kritik öneme sahiptir ve dosyayı yüklemeden önce doğru olduğunu doğrulamanız gerekir.',
|
|
122
|
+
},
|
|
123
|
+
{ type: 'title', text: '.pem veya .crt dosyasını adım adım inceleme', level: 2 },
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'Sertifikayı aracımızla analiz etmek oldukça basit ve konsol (OpenSSL) bilgisi gerektirmez. Şu adımları izleyin:',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'list',
|
|
130
|
+
items: [
|
|
131
|
+
'<strong>Dosyanızı bulun:</strong> Bilgisayarınızda .pem, .crt, .cer veya .der uzantılı dosyayı bulun.',
|
|
132
|
+
'<strong>Sürükle ve bırak:</strong> Dosyayı yukarıdaki noktalı alana sürükleyin.',
|
|
133
|
+
'<strong>Sonuçları görüntüle:</strong> Hemen, sertifikayı kimin yayımladığını, kimin için, ne zaman sona ereceğini ve parmak izlerini göreceksiniz.',
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'tip',
|
|
138
|
+
title: 'Tam Gizlilik',
|
|
139
|
+
html: 'Bu işlemin en önemli kısmı <strong>gizliliktir</strong>. Dosya asla sunucularımıza yüklenmez. Sertifikanın ASN.1 yapısının tüm ayrıştırması tarayıcınızın RAM\'inde gerçekleşir. Açık anahtarlarınız için tam güvenlik.',
|
|
140
|
+
},
|
|
141
|
+
{ type: 'title', text: 'Sertifikanızı analiz ederken göreceğiniz temel alanlar', level: 2 },
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'Sertifikanızı analiz ederken, en uygun olan teknik bilgileri çözerek bir bakışta doğrulayabilmeniz için:',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'list',
|
|
148
|
+
items: [
|
|
149
|
+
'<strong>Konu:</strong> Ortak Ad (CN), kuruluş ve konum dahil olmak üzere sahip verilerini gösterir.',
|
|
150
|
+
'<strong>Yayımcı:</strong> Sertifikayı imzalayan Sertifika Otoritesini (CA) tanımlar (örneğin Let\'s Encrypt, DigiCert).',
|
|
151
|
+
'<strong>Geçerlilik Dönemi:</strong> Tam veriliş tarihi ve kritik sona erme tarihini gösterir.',
|
|
152
|
+
'<strong>Parmak İzleri:</strong> SHA-256 ve SHA-1 parmak izleri dosyanın bütünlüğünü doğrulamaya yarar.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{ type: 'title', text: 'Desteklenen Biçimler: PEM, CRT, CER ve DER', level: 2 },
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: 'Çeşitli sertifika dosyası biçimleri vardır ve bazen kafa karıştırıcı olabilir. Aracımız en yaygın olanlarla uyumludur:',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'list',
|
|
162
|
+
items: [
|
|
163
|
+
'<strong>PEM (.pem, .crt, .cer):</strong> Linux ve web sunucularında en yaygın biçim. <code>-----BEGIN CERTIFICATE-----</code> satırı ile başlar.',
|
|
164
|
+
'<strong>DER (.der, .cer):</strong> İkili biçim. Windows ortamlarında (Java, Active Directory) yaygın olarak kullanılır ve genellikle özel araçlar olmadan okunması daha zordur.',
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: 'paragraph',
|
|
169
|
+
html: 'Dosyanız sıradışı bir uzantı olsa bile, iç yapı standart X.509 sertifikası ise <strong>node-forge</strong> tarafından desteklenen motorumuz bunu sorunsuz bir şekilde yorumlayabilir.',
|
|
170
|
+
},
|
|
171
|
+
{ type: 'title', text: 'OpenSSL yerine bu aracı neden kullanmalısınız?', level: 2 },
|
|
172
|
+
{
|
|
173
|
+
type: 'paragraph',
|
|
174
|
+
html: 'OpenSSL kripto grafinin İsviçre çakısıdır ancak komutları hatırlaması zordur. Konsol\'dan sertifika görüntülemek için yazmanız gerekir:',
|
|
175
|
+
},
|
|
176
|
+
{ type: 'code', text: 'openssl x509 -in certificado.crt -text -noout' },
|
|
177
|
+
{
|
|
178
|
+
type: 'paragraph',
|
|
179
|
+
html: 'Aracımız günlük iş akışı için net avantajlar sunmaktadır:',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'list',
|
|
183
|
+
items: [
|
|
184
|
+
'<strong>Hız:</strong> Terminali açmaya veya karmaşık bayrakları hatırlamaya gerek yok.',
|
|
185
|
+
'<strong>Görsel:</strong> Alan adlarını (Locality, Organization) okunabilir hale getiririz ve "L" veya "O" gibi kısa kodlar değildir.',
|
|
186
|
+
'<strong>Geçerlilik Uyarıları:</strong> Sertifikanın bugün geçerli olup olmadığını otomatik olarak hesaplarız, bu da güncel tarihi sertifika tarihine karşı manuel olarak kontrol etmekten sizi kurtarır.',
|
|
187
|
+
'<strong>Platformlar Arası:</strong> Modern tarayıcıya sahip herhangi bir işletim sisteminde çalışır, kurulacak bağımlılık yoktur.',
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
{ type: 'title', text: 'Güvenlik ve Gizlilik: Sertifikanız RAM\'i asla terk etmez', level: 2 },
|
|
191
|
+
{
|
|
192
|
+
type: 'paragraph',
|
|
193
|
+
html: 'Bir geliştirici olarak bu tür bilgileri işlemenin ne kadar kritik olduğunu biliyorum. Sertifika teknik olarak <strong>kamuya açık bilgiler</strong>se de (web sitenizi ziyaret eden herhangi bir tarayıcıya gönderilir), yine de dosyaları gereksiz yere harici sunuculara yüklememeniz iyi bir uygulamadır.',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
type: 'paragraph',
|
|
197
|
+
html: 'Bu yardımcı program kesinlikle istemci tarafında çalışan JavaScript kullanır. Dosyayı sürüklediğinizde içeriğini okuyup yerel olarak işleriz. İnterneti keserek bunu doğrulayabilirsiniz: araç tam olarak aynı şekilde çalışmaya devam edecektir.',
|
|
198
|
+
},
|
|
199
|
+
{ type: 'title', text: 'SSL İncelemcisinin Yaygın Kullanım Durumları', level: 2 },
|
|
200
|
+
{
|
|
201
|
+
type: 'paragraph',
|
|
202
|
+
html: 'Bu sayfayı yer işaretine eklemek ne zaman yararlı olurdu?',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: 'list',
|
|
206
|
+
items: [
|
|
207
|
+
'<strong>Sunucu Hata Ayıklaması:</strong> Bir sertifika yüklediğinizde ve web sitesi hata vermeye devam ettiğinde, yanlışlıkla eski sertifikayı yüklemediğinizi doğrulamak için.',
|
|
208
|
+
'<strong>Zincir Doğrulaması:</strong> Dosyanın son sertifika mı yoksa ara sertifika mı içerdiğini görmek için.',
|
|
209
|
+
'<strong>Varlık Denetimi:</strong> Eski bir projede hangi Sertifika Otoritesinin kullanıldığını kontrol etmek için.',
|
|
210
|
+
'<strong>Kopya Bütünlüğü:</strong> Sertifikaları sunucular arasında taşırken, SHA-256 parmak izini karşılaştırarak dosyanın bozulmadığından emin olmak için.',
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'ssl-tls-certificate-inspector';
|
|
6
|
+
const title = '在线SSL/TLS证书检查器 查看PEM和CRT文件';
|
|
7
|
+
const description = '在线分析SSL证书文件(.pem、.crt、.der)。检查到期日期、颁发者、主体和SHA-256指纹,无需您的数据离开浏览器。';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: '在此网站上分析我的SSL证书是否安全?',
|
|
12
|
+
answer: '绝对安全。此实用程序100%在客户端运行。当您拖动.pem或.crt文件时,浏览器在本地读取数据,永远不会将其发送到任何服务器。完全的隐私。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: '支持哪些证书格式?',
|
|
16
|
+
answer: '该工具支持最常见的格式:PEM(带有"BEGIN CERTIFICATE"标头的Base64编码)和DER(二进制格式),通常具有.pem、.crt、.cer或.der扩展名。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '我能看到.crt文件的有效期吗?',
|
|
20
|
+
answer: '是的,加载文件时,您将立即看到"有效性状态"部分,其中显示确切的到期日期以及证书在今天是否仍然有效。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '证书颁发者做什么?',
|
|
24
|
+
answer: '颁发者(Issuer)表示哪个证书颁发机构(CA)验证了网站的身份。了解商业浏览器是否会识别证书很重要。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'SHA-256指纹是如何计算的?',
|
|
28
|
+
answer: '通过直接对证书的二进制内容应用哈希算法来计算。它们用于验证文件未被篡改并与服务器期望的相匹配。',
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
const howToData = [
|
|
33
|
+
{ name: '查找您的文件', text: '在您的计算机上找到具有.pem、.crt、.cer或.der扩展名的文件。' },
|
|
34
|
+
{ name: '拖放', text: '只需将文件拖到上面的虚线区域。' },
|
|
35
|
+
{ name: '查看结果', text: '您将立即看到谁发布了证书、为谁发布、何时过期以及其指纹。' },
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
39
|
+
'@context': 'https://schema.org',
|
|
40
|
+
'@type': 'FAQPage',
|
|
41
|
+
mainEntity: faqData.map((item) => ({
|
|
42
|
+
'@type': 'Question',
|
|
43
|
+
name: item.question,
|
|
44
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
45
|
+
})),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
49
|
+
'@context': 'https://schema.org',
|
|
50
|
+
'@type': 'HowTo',
|
|
51
|
+
name: title,
|
|
52
|
+
description,
|
|
53
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
57
|
+
'@context': 'https://schema.org',
|
|
58
|
+
'@type': 'SoftwareApplication',
|
|
59
|
+
name: title,
|
|
60
|
+
description,
|
|
61
|
+
applicationCategory: 'UtilityApplication',
|
|
62
|
+
operatingSystem: 'All',
|
|
63
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
64
|
+
inLanguage: 'zh',
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const ui: InspectorCertificadosSslUI = {
|
|
68
|
+
labelAnalyzeCertificate: '分析证书',
|
|
69
|
+
dragDropText: '在此处拖动您的.pem、.crt或.cer文件',
|
|
70
|
+
dragDropSubtext: '(在浏览器中进行100%本地处理)',
|
|
71
|
+
cardStatusTitle: '有效性状态',
|
|
72
|
+
cardSubjectTitle: '主体(所有者)',
|
|
73
|
+
cardIssuerTitle: '颁发者(CA)',
|
|
74
|
+
cardFingerprintsTitle: '指纹',
|
|
75
|
+
cardTechnicalTitle: '技术细节',
|
|
76
|
+
labelValidityStatus: '状态:',
|
|
77
|
+
labelExpiryDate: '到期日期',
|
|
78
|
+
labelIssueDate: '发布日期',
|
|
79
|
+
labelSha256: 'SHA-256指纹',
|
|
80
|
+
labelSha1: 'SHA-1指纹',
|
|
81
|
+
labelSignatureAlgorithm: '签名算法',
|
|
82
|
+
labelVersion: 'X.509版本',
|
|
83
|
+
labelSerialNumber: '序列号',
|
|
84
|
+
labelCommonName: '通用名',
|
|
85
|
+
labelOrganization: '组织',
|
|
86
|
+
labelOrgUnit: '组织单位',
|
|
87
|
+
labelLocality: '地区',
|
|
88
|
+
labelState: '州/省',
|
|
89
|
+
labelCountry: '国家',
|
|
90
|
+
labelEmail: '电子邮件',
|
|
91
|
+
statusValid: '有效',
|
|
92
|
+
statusExpired: '已过期',
|
|
93
|
+
errorMessageInvalid: '无效文件。',
|
|
94
|
+
supportedFormats: '.pem、.crt、.cer、.der',
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const content: ToolLocaleContent<InspectorCertificadosSslUI> = {
|
|
98
|
+
slug,
|
|
99
|
+
title,
|
|
100
|
+
description,
|
|
101
|
+
ui,
|
|
102
|
+
faqTitle: '常见问题',
|
|
103
|
+
faq: faqData,
|
|
104
|
+
bibliographyTitle: '有关SSL/TLS证书的技术资源',
|
|
105
|
+
bibliography: [
|
|
106
|
+
{ name: 'RFC 5280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile', url: 'https://datatracker.ietf.org/doc/html/rfc5280' },
|
|
107
|
+
{ name: 'NIST: FIPS 180-4 Secure Hash Standard (SHA)', url: 'https://csrc.nist.gov/publications/detail/fips/180/4/final' },
|
|
108
|
+
{ name: 'Mozilla: SSL/TLS Encryption Overview', url: 'https://developer.mozilla.org/en-US/docs/Glossary/TLS' },
|
|
109
|
+
{ name: 'OpenSSL: X.509 Certificate Format Documentation', url: 'https://www.openssl.org/docs/man1.1.1/man1/x509.html' },
|
|
110
|
+
],
|
|
111
|
+
howTo: howToData,
|
|
112
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
113
|
+
seo: [
|
|
114
|
+
{ type: 'title', text: '什么是SSL/TLS证书检查器,为什么需要它?', level: 2 },
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: '在网络开发和网络安全领域,<strong>SSL(安全套接字层)和TLS(传输层安全)证书</strong>是信任的基础。数字证书只是将加密密钥链接到组织或域数据的文件。但是,这些文件通常采用二进制格式(.der)或Base64编码(.pem、.crt),乍一看不可读。',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: '我们的<strong>SSL/TLS证书检查器</strong>使您能够以视觉上安全的方式"打开"这些文件。与查询公共域的工具(如著名的SSL Labs测试)不同,此实用程序直接与您设备上的文件一起使用。当您配置Nginx、Apache服务器或将证书加载到AWS或Google Cloud Load Balancer中,并且需要验证手中的文件在上载前是正确的时,这至关重要。',
|
|
122
|
+
},
|
|
123
|
+
{ type: 'title', text: '如何逐步检查.pem或.crt文件', level: 2 },
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '使用我们的工具分析证书非常简单,不需要任何控制台(OpenSSL)知识。请按照以下步骤操作:',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'list',
|
|
130
|
+
items: [
|
|
131
|
+
'<strong>查找您的文件:</strong> 在您的计算机上找到具有.pem、.crt、.cer或.der扩展名的文件。',
|
|
132
|
+
'<strong>拖放:</strong> 只需将文件拖到上面的虚线区域。',
|
|
133
|
+
'<strong>查看结果:</strong> 您将立即看到谁发布了证书、为谁发布、何时过期以及其指纹。',
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'tip',
|
|
138
|
+
title: '完全隐私',
|
|
139
|
+
html: '此过程最重要的部分是<strong>隐私</strong>。该文件永远不会上传到我们的服务器。证书ASN.1结构的所有解析都在您浏览器的RAM中进行。完全保护您的公钥。',
|
|
140
|
+
},
|
|
141
|
+
{ type: 'title', text: '分析证书时会看到的关键字段', level: 2 },
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: '分析证书时,我们会分解最相关的技术信息,以便您一目了然:',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'list',
|
|
148
|
+
items: [
|
|
149
|
+
'<strong>主体:</strong> 显示所有者的数据,包括通用名(CN)、组织和位置。',
|
|
150
|
+
'<strong>颁发者:</strong> 标识签署证书的证书颁发机构(CA)(例如Let\'s Encrypt、DigiCert)。',
|
|
151
|
+
'<strong>有效期:</strong> 显示确切的发布日期和关键的到期日期。',
|
|
152
|
+
'<strong>指纹:</strong> SHA-256和SHA-1指纹用于验证文件的完整性。',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
{ type: 'title', text: '支持的格式: PEM、CRT、CER和DER', level: 2 },
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: '有多种证书文件格式,有时会令人困惑。我们的工具与最常见的兼容:',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'list',
|
|
162
|
+
items: [
|
|
163
|
+
'<strong>PEM(.pem、.crt、.cer):</strong> Linux和网络服务器中最常见的格式。以行<code>-----BEGIN CERTIFICATE-----</code>开头。',
|
|
164
|
+
'<strong>DER(.der、.cer):</strong> 二进制格式。在Windows环境(Java、Active Directory)中被广泛使用,通常在没有专门工具的情况下更难阅读。',
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
type: 'paragraph',
|
|
169
|
+
html: '即使您的文件具有不寻常的扩展名,如果内部结构是标准X.509证书,我们的<strong>node-forge</strong>驱动的引擎也能够轻松解释它。',
|
|
170
|
+
},
|
|
171
|
+
{ type: 'title', text: '为什么使用这个工具而不是OpenSSL?', level: 2 },
|
|
172
|
+
{
|
|
173
|
+
type: 'paragraph',
|
|
174
|
+
html: 'OpenSSL是加密的瑞士军刀,但其命令很难记住。要从控制台查看证书,您必须编写:',
|
|
175
|
+
},
|
|
176
|
+
{ type: 'code', text: 'openssl x509 -in certificado.crt -text -noout' },
|
|
177
|
+
{
|
|
178
|
+
type: 'paragraph',
|
|
179
|
+
html: '我们的工具为日常工作流程提供明确的优势:',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
type: 'list',
|
|
183
|
+
items: [
|
|
184
|
+
'<strong>速度:</strong> 无需打开终端或记住复杂的标志。',
|
|
185
|
+
'<strong>视觉:</strong> 我们格式化字段名称(Locality、Organization)以便阅读,而不是"L"或"O"之类的短代码。',
|
|
186
|
+
'<strong>有效性警报:</strong> 我们自动计算证书在今天是否有效,从而省去您手动检查当前日期与证书日期的麻烦。',
|
|
187
|
+
'<strong>跨平台:</strong> 适用于具有现代浏览器的任何操作系统,无需安装任何依赖项。',
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
{ type: 'title', text: '安全和隐私: 您的证书永远不会离开RAM', level: 2 },
|
|
191
|
+
{
|
|
192
|
+
type: 'paragraph',
|
|
193
|
+
html: '作为开发人员,我知道处理此类信息是多么关键。虽然证书在技术上是<strong>公开信息</strong>(发送到访问您网站的任何浏览器),但仍然不应不必要地将文件上传到外部服务器。',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
type: 'paragraph',
|
|
197
|
+
html: '此实用程序使用在客户端严格运行的JavaScript。拖动文件时,我们读取其内容并在本地处理。您可以通过断开互联网连接来验证这一点:该工具将以完全相同的方式继续工作。',
|
|
198
|
+
},
|
|
199
|
+
{ type: 'title', text: 'SSL检查器的常见用例', level: 2 },
|
|
200
|
+
{
|
|
201
|
+
type: 'paragraph',
|
|
202
|
+
html: '何时将此页面加入书签会很有用?',
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
type: 'list',
|
|
206
|
+
items: [
|
|
207
|
+
'<strong>服务器调试:</strong> 当您安装证书且网站继续出现错误时,用于验证您是否未意外加载旧证书。',
|
|
208
|
+
'<strong>链验证:</strong> 查看文件是包含最终证书还是中间证书。',
|
|
209
|
+
'<strong>资产审计:</strong> 检查在旧项目中使用了哪个证书颁发机构。',
|
|
210
|
+
'<strong>复制完整性:</strong> 在服务器之间移动证书时,通过比较其SHA-256指纹来确保文件未损坏。',
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
|