GNU/Linux >> Belajar Linux >  >> Linux

Integrasi CFSSL dengan Manajer Sertifikat Lemur

Dalam artikel sebelumnya tentang pengelola sertifikat Lemur, kami belum menggunakan Otoritas Sertifikasi (CA) root pihak ketiga untuk sertifikat klien. Oleh karena itu, dalam tutorial ini, PKI akan diatur menggunakan CFSSL (SSL Cloudflare) dan terintegrasi dengan proyek Lemur. Saat ini, tidak ada dokumen yang membantu pengguna untuk mengintegrasikan CFSSL dengan setup Lemur.

Catatan:Karena kami menggunakan CFSSL sebagai otoritas root pihak ketiga, jadi pertama-tama kami harus menyiapkannya di mesin terpisah (namun kami menyiapkannya di kotak Lemur yang sama) dan setelah itu mengubah file conf lemur untuk menggunakan CFSSL untuk menandatangani sertifikat.

Menginstal CFSSL

CloudFlare SSL  diimplementasikan menggunakan bahasa pemrograman "Go" sehingga penginstalan paket "go" diperlukan pada mesin. Perintah berikut akan menginstal paket yang diperlukan pada mesin.

1. Instal Go 

Paket Go akan diinstal dari kode sumber.

wget https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz  

Ekstrak arsip yang diunduh dan instal ke lokasi yang diinginkan pada sistem. Kami menginstalnya di bawah direktori /usr/local. Anda juga dapat meletakkan ini di bawah lokasi yang diinginkan pada sistem.

tar -xzvf go1.10.1.linux-amd64.tar.gz 
mv go /usr/local  

Setelah instalasi paket Go, juga diperlukan untuk mengatur variabel lingkungan untuk biner Go. (Anda dapat menambahkannya di profil pengguna sehingga menjadikannya pengaturan permanen). Biasanya Anda perlu menyetel 3 variabel lingkungan sebagai GOROOTGOPATH dan JALAN .

GOROOT adalah lokasi di mana paket Go diinstal pada sistem Anda.

ekspor GOROOT=/usr/local/go 

GOPATH adalah lokasi direktori kerja Anda.

ekspor GOPATH=$HOME/go

Sekarang setel PATH variabel untuk mengakses go biner di seluruh sistem.

ekspor PATH=$PATH:$GOROOT/bin:$GOPATH/bin

2. Perintah Uji Go

Sekarang ketik perintah "go" di terminal. Maka akan muncul output seperti screenshot berikut.

pergi

3. Instal CFSSL

Kita harus menginstal CFSSL pada platform Ubuntu ini. Ketika variabel lingkungan yang diperlukan untuk GO diatur dengan benar, maka proses instalasi CFSSL akan mudah.

sebuah. Perintah berikut akan mengunduh utilitas CFSSL dan membangunnya di jalur $GOPATH/bin/.

dapatkan -u github.com/cloudflare/cfssl/cmd/cfssl

b. Perintah berikut akan menginstal plugin json dari paket CFSSL. Perintah ini diperlukan karena CFSSL menangani permintaan JSON.

 dapatkan -u github.com/cloudflare/cfssl/cmd/cfssljson

c. cukup instal semua program CFSSL menggunakan perintah yang diberikan di bawah ini. Perintah ini akan mengunduh, membangun, dan menginstal semua program utilitas (termasuk cfssl, cfssljson, dan mkbundle antara lain) ke dalam direktori $GOPATH/bin/.

dapatkan -u github.com/cloudflare/cfssl/cmd/...

Seperti yang ditunjukkan di bawah ini, Jalankan perintah "cfssl" di terminal dan itu akan menampilkan semua operasi yang didukung oleh CFSSL PKI.

Pengaturan PKI CFSSL

Sekarang, aplikasi cfssl akan digunakan untuk mengatur PKI untuk proyek Lemur. File konfigurasi "CSR_configuration" dan "signing_configuration" penting dalam pengaturan CFSSL. File konfigurasi "CSR" berisi konfigurasi untuk pasangan kunci yang akan Anda buat dan konfigurasi "Penandatanganan" sesuai namanya, menyiapkan aturan konfigurasi.

Buat ROOT CA

Untuk CA root, periksa file konfigurasi CSR berikut (yang akan kami sebut csr_ROOT_CA.json):

  • csr_ROOT_CA.json
 { "CN":"MY-ROOT-CA", "key":{ "algo":"ecdsa", "size":256 }, "names":[ { "C":"UK", "L":"London", "O":"Organisasi Saya", "OU":"Unit Organisasi Saya Di Dalam Organisasi Saya" } ], "ca":{ "kedaluwarsa":"262800h" }}

Penjelasan singkat tentang berbagai bidang diberikan di bawah ini.

  • File konfigurasi mengikuti skema penamaan X.509, sehingga bidang berikut diperlukan:
    • CN (Nama Umum) – Nama entitas. Pada kasus Root CA, ini adalah Nama Root CA;
    • C  (Negara)
    • L (Lokasi)
    • O (Organisasi)
    • OU (Unit Organisasi)
  • Sekarang, sejumlah bidang spesifik khusus untuk CFSSL:
    • KEY – Mendefinisikan karakteristik kunci:
      • Algo – Menentukan algoritme. Dapat berupa 'rsa' atau 'ecdsa', masing-masing untuk algoritma RSA atau ECDSA. Sekarang, ECDSA selalu disarankan jika perangkat lama tidak relevan, tetapi ini hanya berlaku untuk perangkat yang berusia kurang dari dua atau tiga tahun. RSA akan digunakan sebaliknya.
      • size – Menentukan ukuran kunci. 256 akan digunakan untuk kunci ecdsa. Untuk kunci RSA, 2048 atau 4096 adalah nilai yang disarankan.
    • ca – Mendefinisikan karakteristik CA dan dalam hal ini validitas kunci, dalam jam, ya, dalam jam. Dalam hal ini adalah 30 tahun (24x356x30), karena otoritas root akan bertahan selama Anda memperkirakan keamanan kunci root.

Sekarang, jalankan perintah berikut untuk benar-benar membuat Root CA untuk Lemur.

cfssl gencert -initca csr_ROOT_CA.json | cfssljson -bare root_ca

Perintah di atas akan membuat file berikut di mesin.

  • root_ca.csr – Permintaan tanda sertifikat ca root, yang tidak masuk akal untuk root ca, dan karena itu tidak akan pernah digunakan. Karena CA root ditandatangani sendiri.
  • root_ca.pem – Sertifikat CA Root. Ini adalah file yang Anda dan sebarkan sebanyak mungkin.
  • root_ca.key – Ini adalah kunci CA root. Simpan file ini dengan aman dan terjamin, seolah-olah hidup Anda bergantung padanya. Untuk Root CA publik, ini sebenarnya adalah kebenaran.

Root CA ditandatangani sendiri, jadi lanjutkan ke langkah berikutnya untuk membuat CA perantara.

CA Menengah

Pembuatan CA Menengah tidak wajib tetapi sesuai dengan praktik terbaik. Tujuan akhir dari memiliki CA perantara, adalah untuk memiliki langkah perantara dalam hal keamanan. Biasanya. kunci CA Root disimpan di mesin offline, dan hanya digunakan saat Anda perlu menandatangani sertifikat CA perantara.

File konfigurasi "csr_INTERMEDIATE_CA.json" diperlukan untuk membuat CA perantara.

  • csr_INTERMEDIATE_CA.json – Permintaan tanda sertifikat untuk CA Menengah
{ "CN":"My-Intermediate-CA", "key":{ "algo":"ecdsa", "size":256 }, "names":[ { "C":"UK", "L":"London", "O":"Organisasi Saya", "OU":"Unit Organisasi Saya Di Dalam Organisasi Saya" } ], "ca":{ "kedaluwarsa":"42720j" }}

File "root_to_intermediate_ca.json" berisi konfigurasi penandatanganan Root CA.

{ 
"signing":{ "default":{ "usages":["digital signature","cert sign","crl sign","signing"], "kedaluwarsa":"262800h" , "ca_constraint":{"is_ca":true, "max_path_len":0, "max_path_len_zero":true} } }}

File ini berisi parameter yang paling relevan untuk sertifikat.

  • penggunaan – Penggunaan mana yang diizinkan untuk dilakukan oleh sertifikat yang ditandatangani. Opsi yang didukung oleh CFSSL adalah sebagai berikut:
    • “tanda tangan digital”,
    • “tanda sertifikat”,
    • “tanda crl”,
    • “menandatangani”
    • dll
  • is_ca – bidang ini hanya berlaku untuk menghasilkan sertifikat CA intermedia, dan memungkinkan sertifikat yang dihasilkan untuk menandatangani sertifikat lain. Jika Anda meninggalkan bidang ini pada sertifikat perangkat akhir, itu akan ditolak oleh sebagian besar browser dan sistem operasi umum.

Perintah berikut akan membuat CA Menengah terhadap konfigurasi yang disebutkan di atas.

cfssl gencert -initca csr_INTERMEDIATE_CA.json | cfssljson -bare intermediate_ca

Perintah di atas akan membuat file CA Menengah berikut.

  • intermediate_ca.csr – Permintaan tanda sertifikat CA Intermediate.
  • intermediate_ca.pem – Sertifikat CA Menengah, tidak ditandatangani oleh siapa pun, dan karenanya tidak berguna.
  • intermediate_ca.key – Ini adalah Kunci CA Menengah. Simpan file ini dengan aman dan terjamin.

Perintah berikut menunjukkan penandatanganan sertifikat CA Menengah oleh CA Root.

cfssl sign -ca root_ca.pem -ca-key root_ca-key.pem -config root_to_intermediate_ca.json intermediate_ca.csr | cfssljson -bare intermediate_ca

Perintah di atas akan menandatangani file intermediate_ca.pem. Sekarang pengaturan Root dan Intermediate CA selesai. Penting untuk menjaga Root CA Keys dan file konfigurasi tetap aman. Langkah selanjutnya adalah membuat sertifikat untuk perangkat klien atau pelanggan. Di sini, kami akan mengintegrasikan pengaturan CFSSL dengan proyek Lemur dan sertifikat klien akan dibuat.

Jalankan PKI CFSSL

Untuk menjalankan PKI berbasis CFSSL, masuk ke dalam direktori certs dan jalankan perintah berikut.

cfssl serve -address 192.168.10.151 -ca root_ca.pem -ca-key root_ca-key.pem -port 8888

Output dari perintah di atas akan mengikuti.

[email protected]:/home/john/Desktop/certs# cfssl serve -address 192.168.10.151 -ca root_ca.pem -ca-key root_ca-key.pem -port 8888
2018/05/20 16:35:18 [INFO] Menginisialisasi penandatangan
2018/05/20 16:35:19 [PERINGATAN] tidak dapat menginisialisasi penandatangan ocsp:open :tidak ada file atau direktori seperti itu
2018/05/20 16:35:19 [INFO] titik akhir '/api/v1/cfssl/scaninfo' diaktifkan
2018/05/20 16:35:19 [PERINGATAN] titik akhir 'ocspsign' dinonaktifkan:penandatangan tidak diinisialisasi
2018/05/20 16:35:19 [INFO] endpoint '/' diaktifkan
2018/05/20 16:35:19 [INFO] endpoint '/api/v1/cfssl/info' adalah diaktifkan
2018/05/20 16:35:19 [INFO] endpoint '/api/v1/cfssl/gencrl' diaktifkan
2018/05/20 16:35:19 [INFO] endpoint ' /api/v1/cfssl/scan' diaktifkan
2018/05/20 16:35:19 [PERINGATAN] titik akhir 'crl' dinonaktifkan:sertifikat db tidak dikonfigurasi (hilang -db-config)
20/05 2018 16:35:19 [INFO] endpoint '/api/v1/cfssl/certinfo' diaktifkan
2018/05/20 16:35:19 [PERINGATAN] endpoint 'revoke' dinonaktifkan:sertifikat db tidak conf igured (hilang -db-config)
2018/05/20 16:35:19 [INFO] bundler API siap
2018/05/20 16:35:19 [INFO] endpoint '/api/ v1/cfssl/bundle' diaktifkan
2018/05/20 16:35:19 [INFO] set up key / CSR generator
2018/05/20 16:35:19 [INFO] endpoint ' /api/v1/cfssl/newkey' diaktifkan
2018/05/20 16:35:19 [INFO] endpoint '/api/v1/cfssl/init_ca' diaktifkan
2018/05/20 16:35:19 [INFO] endpoint '/api/v1/cfssl/sign' diaktifkan
2018/05/20 16:35:19 [PERINGATAN] endpoint 'authsign' dinonaktifkan:{"code":5200,"message":"Kebijakan tidak valid atau tidak dikenal"}
2018/05/20 16:35:19 [INFO] endpoint '/api/v1/cfssl/newcert' diaktifkan
2018/05 /20 16:35:19 [INFO] Pengaturan handler selesai.
2018/05/20 16:35:19 [INFO] Sekarang mendengarkan pada 192.168.10.151:8888

Alamat ip mesin adalah 192.168.10.151 dan portnya 8888 . Izinkan port ini di firewall untuk menggunakan CFSSL.

CATATAN:Perintah berikut hanya memandu untuk menggunakan utilitas cfssl.

{ cfssl serve [-address address] [-ca cert] [-ca-bundle bundle] \
[-ca-key key] [-int-bundle bundle] [-int-dir dir] [ -port port] \
[-metadata file] [-remote remote_host] [-config config] \
[-responder cert] [-responder-key key] [-db-config db-config] }

Sekarang, konfigurasi CFSSL selesai dan berjalan di mesin. Langkah selanjutnya adalah integrasi CFSSL dengan Lemur.

Konfigurasi lemur untuk PKI CFSSL

Sekarang, file konfigurasi "lemur.conf.py" dari Lemur akan dimodifikasi (seperti kunci URL, ROOT, dan Intermediate). File konfigurasi akan menyertakan informasi tentang CFSSL. Jalur file konfigurasi lemur adalah  "/home/lemur/.lemur/lemur.conf.py".

CFSSL_URL ="http://192.168.10.151:8888"
CFSSL_ROOT ="""-----BEGIN SERTIFIKAT-----
MIICcjCCAhegAwIBAgIUahfYPc4RpK92G1ZHhu3q9URvf+8wCgYIKoZIzj0EAwIw
9UmEM4IEd2j8/w4WdTYa />-----AKHIR SERTIFIKAT-----"""
CFSSL_INTERMEDIATE ="""-----BEGIN SERTIFIKAT-----
MIICfDCCAiKgAwIBAgIUEeb8Duel8wySG61vCM2UEUD15XQwCgYIKoZIzj0EAwIw
qM9lE82tku/b6SMxAlBByQ=="""

Sekarang, jalankan perintah "lemur start" untuk menggunakan lemur.conf.py dengan pengaturan CFSSL.

Buat sertifikat menggunakan CFSSL

Dengan mengikuti artikel kami sebelumnya tentang Lemur, akses dasbor untuk membuat Sertifikat klien menggunakan Root CA dari CFSSL. Pertama-tama, buat Otoritas Sertifikasi baru dan pilih plugin CFSSL sebagai Root CA.

1. mengatur parameter yang berbeda dari otoritas baru.

2. pilih Plugin CFSSL yang baru disiapkan sebagai Root CA.

Setelah menyiapkan Otoritas Sertifikasi baru di Lemur, langkah berikutnya adalah membuat sertifikat menggunakan plugin CFSSL yang baru disiapkan.


Linux
  1. Analisis kernel Linux dengan ftrace

  2. Gagal Menandatangani Csr Dengan Kunci Root Ca?

  3. Dapatkan terminal yang disematkan di pengelola file Nautilus dengan Nautilus Terminal 3

  1. Pelajari pintasan pengelola jendela i3 Linux

  2. Memulai Pengelola File Plesk

  3. Nonaktifkan masuk dengan akun root

  1. Menghitung Karakter Setiap Baris Dengan Wc?

  2. Menggunakan –exclude Dengan Perintah Du?

  3. Instal dan gunakan utilitas Lets Encrypt Certbot di CentOS 7 dengan Apache