Let’s Encrypt無料SSLサーバ証明書でさくらのレンタルサーバ自サイトSSL化

さくらのレンタルサーバから「無料SSL機能提供開始のお知らせ」が届いたので…

お知らせ内容を確認して、手順どおりLet’s Encryptの無料SSLサーバー証明書をコントロールパネルから設定してみました!

サーバの設定自体はかんたんで良かったんですが…コンテンツの方がちょっと苦戦しちゃって
自サイト構築が古く2001年から運用してて自作プログラムで共通部品化をしてて(汗)

・ヘッダーとフッターは初期に作りこんだ為…Perlでゴリゴリ
・左メニューなどは後から追加してPHPでさくさく作ってて

HTMLファイルをSSI動作する設定にして、各HTMLからPerlやPHPを読み込む変則的な作りになってるのでそれぞれのファイル内からの呼び出しをhttp://→https://にちょこちょこ変えてそれなりに表示できるようになりました。ほっ

常時SSL化までは考えてなかったので.htaccessでトップページのみSSL化対応にしときました

# トップページのみhttpsへ301リダイレクト
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^$ https://www.yamasita.info/ [R=301,L]

このページ(WordPress)はサブドメインで設定してるから、後日SSL対応でプラグインでも入れて常時SSL化やってみるかな~?

PHPで「rss-php」ライブラリを利用してRSSリーダ機能をリプレース

10年以上前に、自サイト用にちゃちゃっと作ってたRSSリーダー機能↓
⇒PHPでMagpieRSSを使ってRSSリーダ作成し、トップページに埋め込みました!

が…ヤフーブログがhttps化された事でヤフーブログのrssを読み込みできない問題が発生!

当時使った古い「MagpieRSS」ライブラリが更新されてなくhttps対応がそのまま無理だったので
https対応でキャッシュ機能もある「rss-php」ライブラリを利用しプログラムを書き換えました

基本的な処理はそのままで、変更点は

require_once './Feed.php';

まず「rss-php」ライブラリの読み込み

// キャッシュの設定
Feed::$cacheDir = './cache';
Feed::$cacheExpire = '1 hours';

キャッシュの設定を追加

$feed = new Feed ;
$rss = $feed->load($rssurl[$i]);

フィードの読み込みを変更

上記程度で、変数や処理はそのまま再利用できて30分程度で無事にリプレースできましたよ
今度ヤフーブログを更新して、自サイトのトップページに表示される事を確認しますかね~

参考までに↓ソースも公開しとくか…10年以上前に作った処理で結構てきとうですが(汗)

<?php
//=======================================================================
// システム名    楽しみながら攻めつづける!
// プログラムID  rss.php
// 作成者        山下 アキラ
// 作成日        2006/10/18
// 処理概要      複数RSSファイル対応でまとめて更新順表示するRSSリーダー
//
// 修正履歴      2006/10/19 ソート用配列には過去1ヵ月分の記事を対象
//               2006/10/20 全件表示の際に、登録済のブログ一覧も表示
//               2007/01/24 トップページ表示には、インテリ更新情報を表示
//               2008/08/24 アメブロのRSSに広告が入ったので非表示対策
//               2017/07/07 ヤフーブログがhttps化されMAGPIE→rss-phpへ
//=======================================================================

if (!ini_get('date.timezone')) {
date_default_timezone_set('Asia/Tokyo');
}

require_once './Feed.php';

// キャッシュの設定
Feed::$cacheDir = './cache';
Feed::$cacheExpire = '1 hours';

$maxnum = $_GET["maxnum"];	//指定された場合の表示数

//RSSファイルのURL(複数可)
$rssurl = array() ;    //初期化
//$rssurl[] = "http://rssblog.ameba.jp/yamasita-94nsr/rss.html";		//楽しみながら、飲みつづける!
$rssurl[] = "https://blogs.yahoo.co.jp/yamasita_94nsr/rss.xml";			//楽しみながら、攻めつづけたい・・・
$rssurl[] = "https://blogs.yahoo.co.jp/mimikaki2000/rss.xml";			//mimikaki監督の部屋 Ⅱ
$rssurl[] = "https://blogs.yahoo.co.jp/nistking/rss.xml";				//blogs.yahoo.co.jp/nistking
$rssurl[] = "https://blogs.yahoo.co.jp/amasadanobu/rss.xml";			//チュンピー日記
$rssurl[] = "https://blogs.yahoo.co.jp/wainsr/rss.xml";					//バイク小屋-NSR250R他!-NSR野朗
$rssurl[] = "http://moto-eng2.seesaa.net/index20.rdf";					//湘南藤沢のバイクショップ日記2 別館
$rssurl[] = "http://shochan88nsr.blog120.fc2.com/?xml";					//正ちゃんミュージアム別館

$rssurl[] = "http://blog.livedoor.jp/yamaharacing/index.rdf";			//MotoGPニュース紹介と雑感
$rssurl[] = "http://www.honda.co.jp/rss/motor.xml";						//【バイク】Hondaウェブサイト新着情報
$rssurl[] = "http://www.honda.co.jp/motorsports/rss/motorsports.rdf";	//【モータースポーツ】Hondaウェブサイト新着情報
$rssurl[] = "http://bphkkokura.exblog.jp/index.xml";					//「08CBR楽しすぎる!の山下店長ブログ」の更新情報

$myblog = 1;	//RSSファイル内の自分のブログ数(上から~何個)
$bikenews = 4;	//RSSファイル内のバイクニュース数(下から~何個)

//複数のブログ情報をまとめる配列
$blogarray = array() ;    //初期化

//複数のRSS情報をまとめる配列
$rssarray = array() ;    //初期化

//表示件数指定の場合は、NSRオーナーブログのみ
if ($maxnum != "") {
$rss_num = count($rssurl);
} else {
$rss_num = count($rssurl) - $bikenews;
}

for ($i=0;$i<$rss_num;$i++) {

$feed = new Feed ;
$rss = $feed->load($rssurl[$i]);

//ブログタイトル(文字コード:UTF-8⇒EUC)
$blogtitle = htmlSpecialChars($rss->title);
$blogtitle = mb_convert_encoding($blogtitle, "EUC-JP", "auto");

//ブログURL
$blogurl = htmlSpecialChars($rss->link);

//ブログへのリンクした文字列作成
$bloglink = "<a href=\"{$blogurl}\" target=\"blog\">{$blogtitle}</a>";

//ブログ用の配列に挿入
$blogarray[] = $bloglink;

foreach ($rss->item as $item) {
//記事タイトル(文字コード:UTF-8⇒EUC)
$title = htmlSpecialChars($item->title);
$title = mb_convert_encoding($title, "EUC-JP", "auto");

//記事URL
$url   = htmlSpecialChars($item->link);

//記事更新日時(UNIXのタイムスタンプ型⇒年月日)
$date_timestamp   = (int) $item->timestamp;
$date = Date("〔Y年n月j日 H:i〕",$date_timestamp);

//記事へのリンクした文字列作成
if ($i < $myblog) {	//自分のブログの場合は「~更新しました!」
$linkstr = "<a href=\"$url\" target=\"blognew\"><b>{$blogtitle}</b>を更新しました! {$title}</a> {$date}";
} else {				//他オーナーさんの場合は「~更新されてます」
$linkstr = "<a href=\"$url\" target=\"blognew\"><b>{$blogtitle}</b>が更新されてます! {$title}</a> {$date}";
}

//3ヶ月以内の記事なら…ソート用の配列に挿入(配列のキーはタイムスタンプ型の更新日時)
$monthly_timestamp = mktime(date(G), date(i), date(s), date("m")-3, date("d"), date("Y"));
if ($date_timestamp > $monthly_timestamp) {
$rssarray["{$date_timestamp}"] = $linkstr;
}
}

}

krsort($rssarray);	//連想配列をキー(記事更新日時:タイムスタンプ型)で降順にソート

if ($maxnum != "") {
$newnum = $maxnum;	//ページへの表示件数(引数での指定数)
} else {
$newnum = count($rssarray);	//ページへの表示件数(配列数)
}
$count = 0;		//カウント用 初期化

//ページに表組として表示
for(reset($rssarray); $key=key($rssarray); next($rssarray)){
print "
<tr>
<td valign=\"top\"><font color=\"#FF9966\" size=\"2\" class=\"font2\">●</font></td>
<td><font size=\"2\" class=\"font2\">$rssarray[$key]</font></td>
</tr>
";

$count++;
if ($count == $newnum) {	//表示件数になったらループから抜ける
break;
}

print "
<tr><td colspan=\"2\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" summary=\" \">
<tr><td><img border=\"0\" src=\"/img/dum.gif\" width=\"1\" height=\"5\" alt=\"\"></td></tr>
<tr><td bgcolor=\"#C0C0C0\"><img border=\"0\" src=\"/img/dum.gif\" width=\"1\" height=\"1\" alt=\"\"></td></tr>
<tr><td><img border=\"0\" src=\"/img/dum.gif\" width=\"1\" height=\"5\" alt=\"\"></td></tr>
</table></td></tr>
";
}

//登録済のブログ数
$blognum = count($rssurl) - $bikenews;

//表示件数指定の場合は、全件へのリンク
if ($maxnum != "") {
/*
print "
<tr>
<td valign=\"top\"></td>
<td align=\"right\"><font size=\"2\" class=\"font2\"><a href=\"link/blognew.html\">⇒過去1ヶ月分のNSRオーナーブログ更新情報を見る!(登録ブログ数:{$blognum}件)</a></font></td>
</tr>
";
*/
//表示件数指定が無い場合には、登録済のブログを表示
} else {
print "
<tr><td colspan=\"2\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" summary=\" \">
<tr><td><img border=\"0\" src=\"/img/dum.gif\" width=\"1\" height=\"5\" alt=\"\"></td></tr>
<tr><td bgcolor=\"#C0C0C0\"><img border=\"0\" src=\"/img/dum.gif\" width=\"1\" height=\"1\" alt=\"\"></td></tr>
<tr><td><img border=\"0\" src=\"/img/dum.gif\" width=\"1\" height=\"5\" alt=\"\"></td></tr>
</table></td></tr>
<tr>
<td valign=\"top\"><font color=\"#FF9966\" size=\"2\" class=\"font2\"><b>※</b></font></td>
<td><font size=\"2\" class=\"font2\"><b>更新情報を表示しているNSRオーナーブログ数は現在{$blognum}件です。</b><br>
";

for($i=0; $i<$blognum; $i++){
$j = $i+1;
print " {$j}:{$blogarray[$i]}<br>\n";
}

print "
</font></td>
</tr>
";
}

?>