%bcond_with bootstrap %global ssl_certs_dir %{_sysconfdir}/ssl/certs %global crt_dir %{_sysconfdir}/pki/tls/certs %global _ca_trust_dir %{_sysconfdir}/pki/ca-trust %global __requires_exclude perl Name: ca-certificates Version: 1.16.1 Release: 3%{?dist} Summary: Utilities for managing CA certificates Summary(ru): Утилиты для управления сертификатами CA License: MPL-2.0 AND (MIT OR GPL-3.0-or-later) URL: https://niceos.ru/packages/%{name} Source0: https://github.com/lfs-book/make-ca/archive/refs/tags/v%{version}.tar.gz # RU: Источники российских доверенных сертификатов (используются подпакетом в %post). # EN: Russian CA sources (used by the subpackage in %post). Source1: https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt Source2: https://gu-st.ru/content/lending/russian_trusted_sub_ca_pem.crt # RU: Базовый bundle + вспомогательные файлы. # EN: Base bundle + helper files. Source3: ca-bundle.crt Source4: remove-expired-certs.sh Source5: pythoncerts.sh Packager: NICE SOFT GROUP LLC (ООО "НАЙС СОФТ ГРУПП") 5024245440 Vendor: NiceSOFT Distribution: NiceOS.Core BugURL: https://bugs.niceos.ru/ VCS: https://specs.niceos.ru/rpms/%{name} BuildRequires: openssl BuildRequires: p11-kit Requires: openssl-libs Requires: p11-kit Requires: nss Requires: sed Requires: p11-kit-trust Requires: /usr/bin/trust Requires: /usr/bin/update-ca-trust Requires: update-ca-trust Requires: %{name}-pki = %{version}-%{release} Requires(posttrans): /usr/bin/ln Provides: %{name}-mozilla = %{version}-%{release} Provides: %{name}-pki Provides: make-ca %description The ca-certificates package provides the tools and baseline certificate bundle used to validate SSL/TLS connections system-wide. It installs the make-ca utility, a base CA bundle, and helper scripts to maintain the system trust store on NiceOS. %description -l ru Пакет ca-certificates содержит инструменты и базовый набор корневых сертификатов, которые используются для проверки подлинности SSL/TLS-соединений в системе. Он устанавливает утилиту make-ca, базовый CA-bundle и вспомогательные скрипты для обслуживания системного хранилища доверия в NiceOS. %package russian-ca Summary: Russian trusted root CAs Summary(ru): Российские доверенные корневые сертификаты Requires: %{name} = %{version}-%{release} Requires: openssl Requires: p11-kit-trust Requires: /usr/bin/update-ca-trust %description -n %{name}-russian-ca This subpackage adds Russian trusted CA certificates to the system trust store by generating OpenSSL trusted PEM files in /etc/ssl/local and running update-ca-trust. Installation and removal automatically rebuild the trust store. %description -l ru -n %{name}-russian-ca Подпакет добавляет российские доверенные сертификаты в системное хранилище доверия через генерацию OpenSSL trusted PEM-файлов в /etc/ssl/local и последующий update-ca-trust. Установка и удаление подпакета автоматически пересобирают trust store. %prep %autosetup -p1 -n make-ca-%{version} %build # RU: Upstream make-ca не модифицируем через cat >>; симлинк создаётся в %posttrans. # EN: Do not modify upstream make-ca via cat >>; the symlink is created in %posttrans. : %install rm -rf %{buildroot} # Install make-ca (base) make install DESTDIR=%{buildroot} # Base bundle install -vdm 0755 %{buildroot}%{crt_dir} install -m 0644 %{SOURCE3} %{buildroot}%{crt_dir}/ca-bundle.crt # Helper script install -vdm 0755 %{buildroot}%{_bindir} install -m 0755 %{SOURCE4} %{buildroot}%{_bindir}/remove-expired-certs.sh # python cert env hint (ship as config) install -vdm 0755 %{buildroot}%{_sysconfdir}/profile.d install -m 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/profile.d/pythoncerts.sh # RU: russian-ca: сохраняем исходные сертификаты в ФС, используем их в %post. # EN: russian-ca: install raw input certs into the filesystem for use in %post. install -vdm 0755 %{buildroot}%{_datadir}/%{name}/niceos install -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/%{name}/niceos/russian_trusted_root_ca_pem.crt install -m 0644 %{SOURCE2} %{buildroot}%{_datadir}/%{name}/niceos/russian_trusted_sub_ca_pem.crt %post %systemd_post update-pki.service %systemd_post update-pki.timer # RU: Активируем таймер обновления сертификатов (без фейла в chroot/контейнере). # EN: Activate the certificate update timer (do not fail in chroot/containers). systemctl enable --now update-pki.timer >/dev/null 2>&1 || : %{_bindir}/remove-expired-certs.sh || : /usr/bin/update-ca-trust || : %posttrans ln -sf %{crt_dir}/ca-bundle.crt %{ssl_certs_dir}/ca-certificates.crt || : # RU: Не удаляем широкими масками файлы в /etc/pki/anchors (могут принадлежать другим пакетам/пользователю). # EN: Do not remove files from /etc/pki/anchors with broad globs (may belong to other packages/user). /usr/sbin/make-ca -g --force >/dev/null 2>&1 || : /usr/bin/update-ca-trust || : systemctl try-restart update-pki.timer >/dev/null 2>&1 || : %preun %systemd_preun update-pki.timer %postun %systemd_postun update-pki.timer /usr/bin/update-ca-trust || : %post -n %{name}-russian-ca # RU: Генерируем доверенные PEM в /etc/ssl/local, затем обновляем trust store. # EN: Generate trusted PEMs in /etc/ssl/local, then rebuild the trust store. install -d -m 0755 /etc/ssl/local || : # RU: Важно: генерируем именно PEM (без -text/-fingerprint), чтобы make-ca/openssl корректно парсили файл. # EN: Important: generate PEM only (no -text/-fingerprint) so make-ca/openssl can parse the file correctly. openssl x509 -in %{_datadir}/%{name}/niceos/russian_trusted_root_ca_pem.crt \ -setalias "Russian Trusted Root CA" \ -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \ -out /etc/ssl/local/Russian_Trusted_Root_CA.pem || : openssl x509 -in %{_datadir}/%{name}/niceos/russian_trusted_sub_ca_pem.crt \ -setalias "Russian Trusted Sub CA" \ -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \ -out /etc/ssl/local/Russian_Trusted_Sub_CA.pem || : /usr/bin/update-ca-trust || : systemctl try-restart update-pki.timer >/dev/null 2>&1 || : %postun -n %{name}-russian-ca rm -f /etc/ssl/local/Russian_Trusted_Root_CA.pem /etc/ssl/local/Russian_Trusted_Sub_CA.pem || : /usr/bin/update-ca-trust || : systemctl try-restart update-pki.timer >/dev/null 2>&1 || : %files %defattr(-,root,root) %config(noreplace) %{_sysconfdir}/make-ca/CS.txt %config(noreplace) %{_sysconfdir}/make-ca/make-ca.conf.dist %config(noreplace) %{_sysconfdir}/make-ca/ISRG_Root_X1.pem %{crt_dir}/ca-bundle.crt %{_bindir}/remove-expired-certs.sh %{_libexecdir}/make-ca/copy-trust-modifications %{_sbindir}/make-ca %{_mandir}/man8/make-ca.8* %{_unitdir}/update-pki.service %{_unitdir}/update-pki.timer %config(noreplace) %{_sysconfdir}/profile.d/pythoncerts.sh %files russian-ca %defattr(-,root,root) %{_datadir}/%{name}/niceos/russian_trusted_root_ca_pem.crt %{_datadir}/%{name}/niceos/russian_trusted_sub_ca_pem.crt # RU: /etc/ssl/local/Russian_Trusted_*.pem создаются в %post, в %files не перечисляем. # EN: /etc/ssl/local/Russian_Trusted_*.pem are generated in %post, do NOT list them in %files. %changelog * Sat May 02 2026 NiceOS Team - 1.16.1-3 - Enable and start update-pki.timer (Включён и запущен update-pki.timer) - Fix russian-ca cleanup and generate PEM-only outputs (Исправлено удаление russian-ca и генерация чистых PEM) * Thu Dec 18 2025 Stanislav Belikov - 1.16.1-2 - Split Russian trusted CAs into ca-certificates-russian-ca subpackage - Generate /etc/ssl/local/Russian_Trusted_*.pem in %post as trusted PEMs via openssl x509 -addtrust - Remove generated PEMs in %postun and rebuild trust store - Add postun hooks for trust store rebuild * Sat May 10 2025 NiceOS Team - 1.16.1-1 - Initial build for NiceOS (Первая сборка для НАЙС.ОС)