Awọn iwe afọwọkọ shell fun ṣiṣakoso Alaṣẹ Iwe-ẹri (CA) ti ko ni asopọ intanẹẹti ati ti o ya sọtọ ni afẹfẹ lori OpenBSD pẹlu OpenSSL. Ipo ifagile ti wa ni atẹjade nipasẹ Olupin OpenBSD OCSP lọtọ. Awọn imudojuiwọn ni a gbe laarin ẹrọ CA ti ko ni intanẹẹti ati ẹrọ olupin OCSP nipasẹ 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 |
┌─────────────────────────────┐ USB Drive ┌──────────────────────────┐
│ Ẹrọ CA (laisi intanẹẹti) │ ───────────────────► │ Ẹrọ Olupin OCSP │
│ (OpenBSD, ya sọtọ) │ export-to-usb.sh │ (OpenBSD, ninu nẹtiwọọki)│
│ │ ◄─────────────────── │ │
│ /root/ca/ │ gbigbe ara │ /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/ │ │ │
└─────────────────────────────┘ └──────────────────────────┘
Awọn ẹrọ mejeeji ṣiṣẹ OpenBSD. Fi OpenSSL sori ẹrọ ti ko ba si tẹlẹ:
pkg_add opensslẸrọ olupin OCSP tun nilo
OpenBSDOCSPServer ti a fi sori ẹrọ
ati ti o forukọsilẹ gẹgẹ bi iṣẹ rc.d ti a n pè ní ocspserver.
Gbogbo awọn iwe afọwọkọ lo #!/bin/sh (OpenBSD /bin/sh ti o da lori ksh), awọn
ohun elo OpenBSD boṣewa (mount_msdos, sha256, rcctl, doas), ati openssl(1).
Ṣe gbogbo awọn iwe afọwọkọ gẹgẹ bi root nipasẹ doas.
scripts/
setup-ca.sh Pilẹṣẹ awọn iwe ipamọ CA gbongbo ati ṣẹda bọtini/iwe-ẹri gbongbo
create-intermediate-ca.sh Ṣẹda CA aarin ti CA gbongbo fowo si
create-server-cert.sh Ṣe agbejade iwe-ẹri olupin TLS (mTLS)
create-client-cert.sh Ṣe agbejade iwe-ẹri onibara (mTLS)
revoke-cert.sh fagile iwe-ẹri ati tun ṣẹda CRL
export-to-usb.sh Ṣajọpọ data CA sori USB fun gbigbe ya sọtọ (ẹgbẹ CA)
import-from-usb.sh Gbe wọle lati USB si olupin OCSP (ẹgbẹ olupin OCSP)
config/
openssl-root.cnf.template Awoṣe iṣeto OpenSSL fun CA gbongbo
openssl-intermediate.cnf.template Awoṣe iṣeto OpenSSL fun CA aarin
Mura àwọn iye imuṣiṣẹ rẹ ṣáájú ṣiṣe àwọn ìgbésẹ̀ tó wà ní isalẹ:
-
Níbo ni CA yóò wà?
default:/root/ca
gangan: -
Kí ni orúkọ ilé-iṣẹ́, ó sì wà níbo?
default:My Organization
gangan: -
Kí ni orúkọ iṣẹ́-akanṣe?
default:MY PROJECT
gangan: -
Ọjọ́ wo ni a fi ń ṣe ẹya iṣẹ́-akanṣe?
default:01012027
gangan: -
Kí ni TLD?
default:example.com
gangan: -
Kí ni subdomain?
default:app.
gangan: -
Kí ni adirẹsi imeeli fún olumulo oníbàárà?
default:user@example.com
gangan: -
Níbo ni USB fún ìgbékalẹ̀ wà?
default:/dev/sd1i
gangan:
doas sh scripts/setup-ca.sh /root/ca \
"/C=US/ST=MyState/L=MyCity/O=My Organization/CN=My Organization Root CA"Ṣẹda /root/ca/, ṣe agbejade bọtini gbongbo 4096-bit ti AES-256 fi pamọ, iwe-ẹri
ti ara rẹ fowo si ti o wulo fun ọdun 20, ati iwe-ẹri ibuwọlu OCSP fun CA gbongbo.
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"Awọn faili ni a ṣẹda labẹ /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/caAwọn abajade ni iwe ipamọ CA aarin:
private/app.example.com.01012027.key.pem— bọtini ikọkọ ti o fi pamọcerts/app.example.com.01012027.cert.pem— iwe-ẹri ti a fowo sicerts/app.example.com.01012027.server.full.pfx— ẹgbẹ PKCS#12
doas sh scripts/create-client-cert.sh MY-PROJECT 01012027 \
user@example.com /root/caTun ṣe fun olumulo kọọkan. Gbe ẹgbẹ .full.pfx kọọkan si olumulo ti o yẹ
nipasẹ ikanni aabo.
doas sh scripts/revoke-cert.sh MY-PROJECT 01012027 \
certs/client-user@example.com.01012027.cert.pem \
keyCompromise /root/caLati tun ṣe CRL laisi fagile ohunkohun (fun apẹẹrẹ, lori iṣeto):
doas sh scripts/revoke-cert.sh MY-PROJECT 01012027 --crl-only /root/caFi USB ti a ṣeto FAT32 sii. Jẹrisi ẹrọ naa:
dmesg | tail -20 # wa fun awọn ila "sd1 at ..."
disklabel sd1 # damo ipin FAT32 (nigbagbogbo 'i')Lẹhinna gbigba:
doas sh scripts/export-to-usb.sh MY-PROJECT 01012027 /root/ca /dev/sd1iIwe afọwọkọ kọ atokọ iye SHA256 ati yọ awakọ ni ailewu. Gbe USB ni ara si ẹrọ olupin OCSP.
dmesg | tail -20 # jẹrisi orukọ ẹrọ USB
disklabel sd1
doas sh scripts/import-from-usb.sh /dev/sd1i /etc/ocsp ocspserverIwe afọwọkọ ṣayẹwo awọn apao SHA256, daakọ awọn faili ti a ṣe imudojuiwọn si
/etc/ocsp/, ati tun gbé daemon ocspserver nipasẹ rcctl. Ti EnableIndexTxtWatch
ba jẹ true ni appsettings.json, olupin OCSP yoo tun gba awọn ayipada index.txt
laifọwọyi laisi atunṣe.
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 | Awoṣe |
|---|---|
| Bọtini CA Aarin | intermediate-PROJECT-DATE.key.pem |
| Iwe-ẹri CA Aarin | intermediate-PROJECT-DATE.cert.pem |
| Ẹwọn Iwe-ẹri | ca-chain-PROJECT-DATE.cert.pem |
| Iwe-ẹri Olupin | SERVER_DOMAIN.DATE.cert.pem |
| Olupin PKCS#12 | SERVER_DOMAIN.DATE.server.full.pfx |
| Iwe-ẹri Onibara | client-USER_EMAIL.DATE.cert.pem |
| Onibara PKCS#12 | client-USER_EMAIL.DATE.full.pfx |
| CRL | intermediate.crl.pem / intermediate.crl.der |
| Iwe-ẹri Ibuwọlu OCSP | INTER_NAME-ocsp.cert.pem |
- Ẹrọ CA laisi intanẹẹti ko gbọdọ jẹ sopọ si nẹtiwọọki rara.
- Awọn bọtini ikọkọ gbongbo ati aarin ti wa ni ipamọ AES-256. Tọju awọn ọrọ-igbaniwọle ni aami ohun elo tabi ibi-itọju ti ara, ti o ya sọtọ kuro ninu awọn bọtini.
- Ṣayẹwo nigbagbogbo awọn apao USB ṣaaju gbigbe wọle —
import-from-usb.shṣe eyi laifọwọyi pẹlusha256 -Cti OpenBSD. - Awọn CRL pari ni ọjọ 30 ni aiyipada. Ṣeto isọdọtun CRL deede:
doas sh scripts/revoke-cert.sh MY-PROJECT DATE --crl-only # lẹhinna export-to-usb + import-from-usb - Awọn iwe-ẹri ibuwọlu OCSP pari lẹhin ọjọ 375. Tun wọn ṣe nipa ṣiṣe
create-intermediate-ca.shpẹlu awọn ariyanjiyan kanna; awọn igbesẹ ti o ti pari ni a fo ati pe iwe-ẹri OCSP tuntun nikan ni a ṣẹda nigbati o nilo.