Тело блока — обычный base64 (не base64url) от байтов DER, по традиции разбитый на строки по 64 символа. Среди меток RFC 7468 — CERTIFICATE, X509 CRL, CERTIFICATE REQUEST, PKCS7, CMS, PRIVATE KEY (PKCS #8), ENCRYPTED PRIVATE KEY и PUBLIC KEY (SPKI). Традиционные форматы OpenSSL добавляют RSA PRIVATE KEY, EC PRIVATE KEY и RSA PUBLIC KEY, а в старых зашифрованных ключах встречаются заголовки Proc-Type: 4,ENCRYPTED и DEK-Info, унаследованные от стандарта Privacy-Enhanced Mail 1993 года.
PEM-файл может содержать несколько объектов: цепочку сертификатов (первым идёт конечный сертификат) или ключ, за которым следует его сертификат. Текст перед блоками и между ними допускается, поэтому вывод openssl x509 -text может соседствовать с base64.
Типичные ошибки вызваны меткой, а не base64: no start line (неверная метка или DER-файл, переданный как PEM), expecting: ANY PRIVATE KEY (открытый ключ там, где ожидался закрытый ключ), повреждение переводами строк CRLF или пробелами, а также отсутствие перевода строки в конце файла, которого требуют строгие парсеры. Преобразование происходит без потерь: openssl x509 -outform DER и обратно.