В моем случае все ответы «не делайте этого, это противоречит стандартам» были очень бесполезны, так как мне нужно было сделать это как часть задачи обратного проектирования. В моем случае тот факт, что это противоречило стандартам, не имел никакого значения.
Вот (грубые )шаги:
/crypto/asn1/a_mbstr.c
в своем любимом редакторе Найдите что-то похожее на следующее:
if ((maxsize > 0) && (nchar > maxsize)) {
ASN1error(ASN1_R_STRING_TOO_LONG);
ERR_asprintf_error_data("maxsize=%ld", maxsize);
return -1;
}
и закомментируйте его. Для версии 2.6.0 это были строки 155 -159. Удаляя эти строки, вы удаляете проверку максимальной длины CN.
Следуйте инструкциям в файле README
для сборки двоичного файла. Мне не нужно было устанавливать какие-либо библиотеки при сборке на macOS, кроме YMMV. Я использовал cmake
, который удалил новый двоичный файл openssl в /build/apps/openssl
Сгенерировать CSR с помощью флагов командной строки (прочитать :НЕ ИНТЕРАКТИВНЫЙ ИНСТРУМЕНТ --он имеет специальную проверку, которая не исправлена этой модификацией! ).
Например:
/build/apps/openssl/openssl req -new -newkey rsa:2048 -nodes -out a.csr -keyout a.key -subj "/CN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Используя стоковые openssl
бинарники (или модифицированные, если хотите ), подпишите CSR:
openssl x509 -req -in a.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out a.crt -days 500 -sha256
После этого у вас должен быть готовый к использованию замечательный несовместимый с -сертификат. Я заметил довольно много проблем с использованием сертификатов с CN длиннее 64 символов (Wireshark усекает CN на дисплее дисектора и т. д. ), но на самом деле это работает для того, что мне нужно.
The /home/arter97/arm64-gcc/bin/aarch64-elf-gcc path doesn't exist on my computer. Does anyone knows what i'm doing wrong?
По сути, вы пытаетесь использовать операционную систему, которая была специально разработана, чтобы не быть полезной для задач разработки для компиляции.
Вам придется неловко установить необходимые наборы инструментов и собрать все вместе.
Kali Linux не предназначена для этого, она усложняет вашу жизнь, и сообщество Kali Linux особенно говорит вам, что вам не следует использовать Kali для этого:https://www.kali.org/docs/introduction/should-i-use-kali-linux/
Итак, если честно,возможно, просто используйте другой Linux, например, Debian, Ubuntu или Fedora, для которых тривиально настроить наборы инструментов перекрестного -компилятора.
Серьезно, подготовить цепочку компиляторов после установки «обычного» Debian
apt install gcc-11-aarch64-linux-gnu
и все. Я не пытаюсь отговорить вас от использования Kali по каким-то личным причинам, это просто усложняет вашу жизнь, если вы занимаетесь чем-либо, кроме тайных исследований в области безопасности. Это очень специализированный инструмент.