更新 2017.6.2 10:07閲覧 3181

Opera 12 の証明書問題について

  •  2017年6月現在、LMDE 2 Betsy のパッケージマネージャからインストールできる Opera のバージョンは、12.16.1860-1linuxmint であるが、幾つかのサイトに於いて『セキュア処理を完了することができません』と表示され、閲覧できないことがある。
  •  例の SSL 問題でもなさそうなので、詳細設定から「証明書の管理」を確認すると、証明書自体の数の少なさに加えて期限切れのものまであった。
  •  あるいは、これらの証明書のアップデートと新規追加を行えば解決できるやも知れずと、certs.opera.com から証明書と思しき xml ファイル一式を wget したものの、肝心のインストール方法が分からない。
  •  当該ファイルを開いて見るに、shortname と certificate-data が該当すると思われたため、これを抽出すべく下記スクリプトを作成し、CRT ファイルなるものとして書き出し、必要と思しきそれをウィンドウにドラッグ・アンド・ドロップしてインストールすれども結局解決には至らなかった。
  •  何となれば、Opera 12 のセキュリティプロトコルの詳細を見ても、SHA-256 までしかないがため、COMODO ECC Certification Authority などの SHA-384 には対応できぬものであろうと見た。
  •  話をスクリプトに戻せば、多数重複していたファイルは番号を付すことでそのまま残したが、以下の2点は修正した。
    • shortname 補記(033C5E_4B3F_8DD4_F6C8_263B_7D3E_7AC4_5B80_B034_71DE_5CED_68E1_CB45_0EAA_23AD_8532.xml)
    • トルコ語等リネーム(str_ireplace の箇所を参照)
端末
wget -r -l1 -np "https://certs.opera.com/03/roots/" -P /tmp -A "*.xml"
/opt/lampp/htdocs/cert-2.2.php
<ol>
<?php
$dir = '/tmp/certificates/';
if ( ! is_dir( $dir ) )
{
    mkdir( $dir, 0757 );
}
else
{
    chmod( $dir, 0757 );
}
$i = 1;
foreach ( glob( '/tmp/certs.opera.com/03/roots/*.xml', GLOB_NOSORT ) as $xmls )
{
    $xml = file_get_contents( $xmls );
    preg_match( '/<shortname>(.*?)<\/shortname>/is', $xml, $name );
    preg_match( '/<certificate-data>(.*?)<\/certificate-data>/is', $xml, $cert );

    if ( ! isset( $name[1] ) )
    {
        $shortname = 'DigiNotar Root CA';
    }
    else
    {
        $name[1] = str_ireplace(
                    'AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.',
                    'AC Raíz Certicámara S.A.',
                    $name[1]
                    );
        $name[1] = str_ireplace(
                    'EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1',
                    'EBG Elektronik Sertifika Hizmet Sağlayıcısı',
                    $name[1]
                    );
        $name[1] = str_ireplace(
                    'T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3',
                    'TÜBİTAK UEKAE Kök Sertifika Hizmet Sağlayıcısı - Sürüm 3',
                    $name[1]
                    );
        $shortname = filter_var( $name[1], FILTER_SANITIZE_EMAIL );
    }
    echo '<li>', $shortname;

    file_put_contents(
                $dir . sprintf( '%03d', $i ) . '-' . $shortname . '.crt',
                "-----BEGIN CERTIFICATE-----\n" . trim( $cert[1] ) . "\n-----END CERTIFICATE-----"
                );
    ++$i;
}

参考

RSA鍵、証明書のファイルフォーマットについて

コメント

当フォームより収集される個人情報は、返信を要する際に使用されるものであり、法令に基づく行政機関等への提供を除き、ご本人の同意を得ずに第三者に提供することはありません。また、コメントが掲載される場合であってもメールアドレスが本サイト内に記載されることはありません。