Hati za shell kwa ajili ya kuendesha Mamlaka ya Cheti (CA) isiyo mtandaoni na iliyotengwa na hewa kwenye OpenBSD kwa kutumia OpenSSL. Hali ya kufutwa inachapishwa kupitia seva ya OpenBSD OCSP tofauti. Masasisho yanahamishwa kati ya mashine ya CA isiyo mtandaoni na mashine ya seva ya OCSP kwa kutumia gari la USB.
🌐 Language / Sprache / Langue / Idioma / Língua / Lingua / 語言 / 언어 / भाषा / Язык / لغة / Lugha / 言語 / Lang / Wika / ʻŌlelo / Gagana / Reo / Taal / Harshe / ቋንቋ / Èdè / ভাষা / 语言 / Keel / Kieli / Språk / Мова / ภาษา / Bahasa / Wika / Bahasa / Basa / Γλώσσα / Lingua / שפה / Teanga
| 🇺🇸 English | 🇩🇪 Deutsch | 🇪🇸 Español | 🇫🇷 Français | 🇵🇹 Português |
| 🇮🇹 Italiano | 🇭🇰 繁體中文 | 🇰🇷 한국어 | 🇮🇳 हिन्दी | 🇷🇺 Русский |
| 🇸🇦 العربية | 🌍 Kiswahili | 🇯🇵 日本語 | 🇭🇹 Kreyòl ayisyen | 🌺 ʻŌlelo Hawaiʻi |
| 🌊 Gagana Sāmoa | 🌿 Te Reo Māori | 🇿🇦 Afrikaans | 🇳🇱 Nederlands | 🌍 Hausa |
| 🇪🇹 አማርኛ | 🌍 Yorùbá | 🇧🇩 বাংলা | 🇨🇳 简体中文 | 🇪🇪 Eesti |
| 🇫🇮 Suomi | 🇸🇪 Svenska | 🇳🇴 Norsk | 🇺🇦 Українська | 🇹🇭 ภาษาไทย |
| 🇮🇩 Bahasa Indonesia | 🇵🇭 Filipino | 🇲🇾 Bahasa Melayu | 🌏 Basa Jawa | 🇬🇷 Ελληνικά |
| 📜 Latina | 🇮🇱 עברית | 🇮🇪 Gaeilge |
┌─────────────────────────────┐ Gari la USB ┌──────────────────────────┐
│ Mashine ya CA (offline) │ ───────────────────► │ Mashine ya Seva ya OCSP │
│ (OpenBSD, imetengwa) │ export-to-usb.sh │ (OpenBSD, mtandaoni) │
│ │ ◄─────────────────── │ │
│ /root/ca/ │ kubeba kimwili │ /etc/ocsp/ │
│ openssl.cnf │ │ index.txt │
│ certs/ca.cert.pem │ │ *.crl.pem │
│ intermediate-*/ │ │ *-responder.crt │
│ index.txt │ │ OcspServer (ASP.NET) │
│ crl/ │ │ rcctl enable ocspserver │
│ certs/ │ │ │
│ ocsp/ │ │ │
└─────────────────────────────┘ └──────────────────────────┘Mashine zote mbili zinaendesha OpenBSD. Sakinisha OpenSSL ikiwa haipo:
pkg_add opensslMashine ya seva ya OCSP pia inahitaji
OpenBSDOCSPServer iliyosakinishwa na
kusajiliwa kama huduma ya rc.d inayoitwa ocspserver.
Hati zote zinatumia #!/bin/sh (OpenBSD ya /bin/sh inayotegemea ksh), zana za
kawaida za OpenBSD (mount_msdos, sha256, rcctl, doas), na openssl(1).
Endesha hati zote kama root kupitia doas.
scripts/
setup-ca.sh Anzisha saraka za CA kuu na tengeneza ufunguo/cheti cha msingi
create-intermediate-ca.sh Unda CA ya kati iliyosainiwa na CA kuu
create-server-cert.sh Toa cheti cha seva ya TLS (mTLS)
create-client-cert.sh Toa cheti cha mteja (mTLS)
revoke-cert.sh Futa cheti na utengeneze upya CRL
export-to-usb.sh Pakiti data ya CA kwenye USB kwa uhamisho wa hewa (upande wa CA)
import-from-usb.sh Ingiza kutoka USB hadi seva ya OCSP (upande wa seva ya OCSP)
config/
openssl-root.cnf.template Kiolezo cha usanidi wa OpenSSL cha CA kuu
openssl-intermediate.cnf.template Kiolezo cha usanidi wa OpenSSL cha CA ya katiAndaa thamani zako za uwekaji kabla ya kuendesha hatua zilizo hapa chini:
-
CA itakuwa wapi?
default:/root/ca
halisi: -
Shirika ni lipi na liko wapi?
default:My Organization
halisi: -
Jina la mradi ni nini?
default:MY PROJECT
halisi: -
Tarehe ya toleo la mradi ni ipi?
default:01012027
halisi: -
TLD ni nini?
default:example.com
halisi: -
Subdomain ni ipi?
default:app.
halisi: -
Barua pepe ya mtumiaji wa mteja ni ipi?
default:user@example.com
halisi: -
Kifaa cha USB cha kuhamisha kiko wapi?
default:/dev/sd1i
halisi:
doas sh scripts/setup-ca.sh /root/ca \
"/C=US/ST=MyState/L=MyCity/O=My Organization/CN=My Organization Root CA"Inaunda /root/ca/, inatengeneza ufunguo wa msingi wa biti 4096 uliofichwa kwa
AES-256, cheti kilichosainiwa na chenyewe chenye uhalali wa miaka 20, na cheti cha
kutiwa saini cha OCSP kwa CA kuu.
doas sh scripts/create-intermediate-ca.sh MY-PROJECT 01012027 /root/ca \
"/C=US/ST=MyState/L=MyCity/O=My Organization/CN=My Organization Intermediate CA MY-PROJECT 01012027"Faili zinaundwa chini ya /root/ca/intermediate-MY-PROJECT-01012027/.
doas sh scripts/create-server-cert.sh MY-PROJECT 01012027 \
app.example.com \
"DNS:app.example.com,DNS:www.example.com" \
/root/caMatokeo kwenye saraka ya CA ya kati:
private/app.example.com.01012027.key.pem— ufunguo wa siri uliofichwacerts/app.example.com.01012027.cert.pem— cheti kilichosainiwacerts/app.example.com.01012027.server.full.pfx— kifurushi cha PKCS#12
doas sh scripts/create-client-cert.sh MY-PROJECT 01012027 \
user@example.com /root/caRudia kwa kila mtumiaji. Hamisha kila kifurushi cha .full.pfx kwa mtumiaji
husika kupitia njia salama.
doas sh scripts/revoke-cert.sh MY-PROJECT 01012027 \
certs/client-user@example.com.01012027.cert.pem \
keyCompromise /root/caKuhuisha CRL bila kufuta chochote (mfano kwa ratiba):
doas sh scripts/revoke-cert.sh MY-PROJECT 01012027 --crl-only /root/caWeka gari la USB lililoundwa kwa FAT32. Thibitisha kifaa:
dmesg | tail -20 # tafuta mistari ya "sd1 at ..."
disklabel sd1 # tambua kizigeu cha FAT32 (kawaida 'i')Kisha hamisha:
doas sh scripts/export-to-usb.sh MY-PROJECT 01012027 /root/ca /dev/sd1iHati inaandika orodha ya mchoro wa SHA256 na kufuta gari kwa usalama. Beba gari la USB kimwili hadi mashine ya seva ya OCSP.
dmesg | tail -20 # thibitisha jina la kifaa cha USB
disklabel sd1
doas sh scripts/import-from-usb.sh /dev/sd1i /etc/ocsp ocspserverHati inathibitisha mchoro, inakili faili zilizosasishwa hadi /etc/ocsp/, na
kupakia upya ocspserver daemon kupitia rcctl. Ikiwa EnableIndexTxtWatch ni
true katika appsettings.json, seva ya OCSP pia itachukua mabadiliko ya
index.txt kiotomatiki bila upakiaji upya.
openssl ocsp \
-issuer /etc/ocsp/intermediate-MY-PROJECT-01012027/ca-chain.cert.pem \
-cert /path/to/cert.pem \
-url http://localhost:2560 \
-resp_text| Faili | Muundo |
|---|---|
| Ufunguo wa CA ya kati | intermediate-PROJECT-DATE.key.pem |
| Cheti cha CA ya kati | intermediate-PROJECT-DATE.cert.pem |
| Mnyororo wa vyeti | ca-chain-PROJECT-DATE.cert.pem |
| Cheti cha seva | SERVER_DOMAIN.DATE.cert.pem |
| PKCS#12 ya seva | SERVER_DOMAIN.DATE.server.full.pfx |
| Cheti cha mteja | client-USER_EMAIL.DATE.cert.pem |
| PKCS#12 ya mteja | client-USER_EMAIL.DATE.full.pfx |
| CRL | intermediate.crl.pem / intermediate.crl.der |
| Cheti cha kusaini OCSP | INTER_NAME-ocsp.cert.pem |
- Mashine ya CA offline kamwe haipaswi kuunganishwa kwenye mtandao.
- Vifunguo vya siri vya msingi na vya kati vimefichwa kwa AES-256. Hifadhi misemo ya siri katika tokeni ya maunzi au sanduku la usalama la kimwili, tofauti na vifunguo.
- Daima thibitisha mchoro wa USB kabla ya kuingiza —
import-from-usb.shhufanya hivi kiotomatiki kwa kutumiasha256 -Cya OpenBSD. - CRL zinaisha baada ya siku 30 kwa chaguo-msingi. Panga upya uhusiano wa CRL mara kwa mara:
doas sh scripts/revoke-cert.sh MY-PROJECT DATE --crl-only # kisha export-to-usb + import-from-usb - Vyeti vya kusaini OCSP vinaisha baada ya siku 375. Vifanye upya kwa kuendesha tena
create-intermediate-ca.shkwa hoja sawa; hatua zilizokamilika zinarukwa na cheti kipya cha OCSP kinaundwa tu inapohitajika.