- 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鍵、証明書のファイルフォーマットについて