Linux sistemlere sertifika ekleme
Tags: linux, sertifika, der, pem
Published: 2021-10-10 12:29:11

X.509 standartı, özellikle HTTPS'in de içinde bulunduğu TLS/SSL protokollerinin kullandığı şifreleme standartı olarak kullanılmaktadır. Açık kaynak kodlu openssl uygulaması da bu standartı kullanarak bir çok süreci yürütmektedir.

## CER, DER ve PEM ne ola ki?

Windows sertifika sistemlerinde genellikle üretilen sertifikalar CER uzantılı olmaktadır. Bu sertifikalar çıktı alınırken DER encoded ve Base64 encoded (PEM) olarak seçilebilmektedir. Genellikle varsayılan olarak DER seçili olduğu için çoğunlukla DER olarak tanımlanmış .CER dosyasıları görebilirsiniz.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/neb2xeoqu6700gphgvn1.png)

DER formatındaki sertifikaları gördüğünüzde dosyanın içinde binary olarak karmaşık formlar olduğunu görürsünüz. (ornek.der)

```
0A0)N	*�H��
N��*�0
     *�H��
�9�{aGk��.�M�.EV��"!\�H�� �iMN���w��k�3�1H�Ў�<!�s��V%3�}�/�t��?�H���V�;���^��nȯ��3qe�|�M�����&*}CXs|M����.8�����D얶�-�cuK�� �pL�+m�Kf~�&�����{fyvd�,-q������ޯ�_�&�A���t����4�*��<r����ѯ���jI�
                                                                                                                                                                                            ��_T�Q2jf"�c����1<�wQj�����������qcr��h��:�U!75#��x|����L�_���v�a�u@�]��t��xnd��WmC����8�u
          �-�;��R���W;:|������kRmM�*���G�fd�AҚQ�$8ˊ��թ><k�#�v�<�ڜ�����f?N�$��i4�s�B��v̈́Q�O�L�t
                                                                                             ��P�i,��b�d�Cd-;�xu8	����m�ј�"W��(4��'��z,Ҕ�	�v�T*!3tV>�8P�`B�9'��QWE�Լ,�	�YE1hX]��i��q�����gD4��Q+�GwI���ۮ�exX&8N�,b�h�G ,�����5��	q0ބ��`�	Jޠ%���?�*�2�a�&�-2_
```

Fakat PEM formatındaki sertifikaların içinde "BEGIN CERTIFICATE" ve "END CERTIFICATE" arasında base64 değerin yer aldığını görürsünüz. (ornek.pem)

```
-----BEGIN CERTIFICATE-----
MIIEFTCCAf2gAwIBAgIBZTANBgkqhkiG9w0BAQsFADA9MRQwEgYKCZImiZPyLGQB
GRYEZXYwMTETMBEGCgmSJomT8ixkARkWA2xhYjEQMA4GA1UEAwwHZXYwMS1DQTAe
Fw0yMDExMjcxOTMzNDdaFw0yMTExMjcxOTMzNDdaMBsxGTAXBgNVBAMMEHNhbWJh
MDEuZXYwMS5sYWIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2STyK
x+qu3rfSLHLG+LapNRu8ubN278aoWegrWnNj4kU2vvWA7EhzO4P5VKaGd1cgfZ/D
xvAdq9hPmB56pUpfeXetXL6VngjovqMZPaWwz8+6hPUhEynkaIKVe8a73bcgm2rB
6yyQhdIKTzdaLLjfME/HQN3moiUHvbmQl9YO/XElb/4jh++x1l/xpOvJnqxvE9/T
Q97Copi9QE5yzbnhqgiwVVF+rTMUZFufvXKJrM6T8yMz5Bizp7/brwY8MkGN+7Qx
CaTaL1IXfL+nQ5+AZTQtU2IwKHRPDFOJdF1WBlzM3PlRjHaIeMk2fjVkZeckMl0D
bHIbnaFmhXHBWd6tAgMBAAGjQjBAMB0GA1UdDgQWBBTbeGPU4jEMIUmez3m4whsF
fOoYyTAfBgNVHSMEGDAWgBSOdVThIT6OL6sqbXUz3sHOF7wfozANBgkqhkiG9w0B
AQsFAAOCAgEAT32lk7THM+0+nT0ltVCErSvcg8LmdMHX+rlbfSlWEeMkggoTtnqn
TNDiwkQBWED8WXRsoYJ0jfWtjfn0W5lOT0d1zsqyTniggRw3b2Zoy+JwUb0sDlFH
5CaYmvDa12CWf5LTMl+t8WLVRqbf0gbGp2SNUVgmNjbBDaWFy1BxjS0lIgn2KRAo
Mw85BmGHexq0DuTR/XxmUqRG/kLs5KfYZ7W2y72z5uCn7a+GmJ82UtyIZXizADAd
5tV5lvq+dqGoudGZP1ryeuiAjfcJ/hdOv8XLLqbfnG+L35BO1wEWRNxEPURYoISM
ngGZ0BMvPHaFR+LXaBS4aRKRcZfwK0e06l2maNxcr/7M4xlNykIw8OI35XwL07aL
+5nGwKRFMD4U9rsO4dli9Q3i4xSeADjRPmzZ3FXDZJHBgMlsS/iQ5MsN/H+6rAoq
Bp3Djg8IqhOYaCNLL9N8T5p8mDlnQcw0m8UDELZgbphbXt+QN6rcdD8tRehfwzfl
ewHGeFwhNc6Zo8qBm1uE53UzZkI0BW3sCys3FtFYn3W0FrkhDXlJlfqKi5TbB7if
rZ9R7+xIjmVf6GJWdACZf2LoV7DIpHcfpN+NKPmF5CimFwojbK127fmt5+dJTsG0
vrr4Kro5+83a3hTdn18PkxTssaCNLIDrgWlhKIWmzthP8pPx+lUgM3Y=
-----END CERTIFICATE-----
```

.CRT dosyaları ise aslında PEM yani base64 olarak kullanılması istenen sertifikalar için kullanılan dosya formatıdır.

## cer uzantılı sertifikanın crt'ye çevrilmesi

Buradaki amaç aslında PEM veya CRT formatında kullanımı isteyen Linux sistemler için DER formatındaki, .cer uzantılı dosyanın PEM formatında, .crt uzantılı dosyaya çevrilmesidir. Bunun için aşağıdaki komutu kullanabilirsiniz:

``` bash
openssl x509 -inform DER -outform PEM -in cersertifika.cer -out crtsertifika.crt 
```

Bu komut sonrasında oluşan sertifika Linux'un sistem-geneli sertifika sistemi tarafından tanınabilecektir.

## Sertifikanın sistem-geneli gerekli yere taşınması

Oluşan sertifika Debian tabanlı sistemlerde aşağıdaki lokasyona taşınmalıdır. Tabi ki bu süreç yetki gerektirmektedir:

``` bash
sudo mv crtsertifika.crt /usr/local/share/ca-certificates/. 
```

## Sertifikanın kullanılabilir hale getirilmesi

Sertifikanın sistem genelinde kullanılabilir hale getirilmesi için aşağıdaki komut çalıştırılmalı.

```bash
sudo update-ca-certificates 
```

Bu komut sonrasında 1 adet sertifikanın eklendiği bilgisi oluşmalı ve sonrasında komut satırından yapacağınız temel işlemlerde geçerli halde güvenilir bir sertifika eklemiş olacaksınız. 

Örnek bir çıktı:

```
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

Adding debian:Sunucu.pem
done.
done.
```