【メモ】let’s encrypt で複数ホスト名対応なSSL証明書を作る

概要 サブドメインを追加した場合に追加されたサブドメインに対してもSSL証明書を発行して安全な通信をしたいということで、複数のマルチドメインに対応したSSL証明書の発行方法について調べてみました。     記事   マルチドメインに対応したSSL証明書を作成する場合、ワイルドカードとSANという二つの方法があるようです。 ワイルドカードとは文字通りワイルドカードに指定されたところ(例えばサブドメイン)が何に変わっても対応するものです。一方、SANはコモンネームという基本のドメイン名とその別名という形で複数ドメインを指定することができるようです。SANはSSL証明書を作成する段階であらかじめ指定されたドメインしか対応しません。新しくドメインが増える場合はその都度新しいSSL証明書を発行しなおす必要があります。 let’s encryptでは、ワイルドカード・SANどちらの方法でも複数ドメインに対応するSSL証明書を発行できるようになりました。 今回は従来から存在するSANを活用した複数ドメイン対応のSSLを発行します。   スクリプト   ※let’s encryptのインストールがまだの場合は、総合ポータルサイト(https://letsencrypt.jp/usage/)などを参考にして、certbot(certbot -auto)コマンドをインストールしてください。   ① let’s encryptで作成されたSSL証明書が格納されているフォルダを圧縮してバックアップを取っておきます 格納場所⇒/etc/letsencrypt/   ② 次に、下記の各フォルダに格納されている現在のドメイン名と同じフォルダ名を削除またはリネームします。 格納場所1⇒/etc/letsencrypt/live/ 格納場所2⇒/etc/letsencrypt/renewal/ 格納場所3⇒/etc/letsencrypt/archive/   ③ 下記のスクリプトをコマンドライン上で実行します   【オプション名】 -w ドキュメントルートを指定 -d ドメイン名を指定(複数指定したい場合は、-dを複数指定する)     参考 サーバー移転(引越し)でLet’s Encrypt 「SSL/TLSサーバ証明書」はどうする? https://letsencrypt.jp/  

Continue reading …

【VAGRANT+VIRTUAL BOX】ローカル環境にLAMP環境を構築する

    はじめに サーバーで公開しているブログやサーバーアプリの開発はWINDOWS上にXAMPPでLAMP環境を構築してPHPSTORMというIDE(統合デバッグ環境)を使って開発をしています。しかし、いくらLAMP環境がWindows上で動くとはいえ実際の環境とは違いがありすぎるので、仮想マシンに環境をインストールすることにしました。最近は、VAGRANTというツールがあって簡単に環境を構築できるようになりました。 今回はVAGRANTを使ってローカル上に仮想マシンを作成します。     環境 WINDOWS10 HOME VAGRANT VIRTUAL BOX APACHE2.4 MYSQL5.7.21 PHP5.4     準備     VAGRANTのインストール   Vagrantとは Vagrantは、違う環境に移行可能な開発環境を簡単に構築・管理し、配布することができるすばらしい開発環境作成ツールです。今回は、Vagrantを使用して仮想マシンの構築を行います。   インストール作業     VIRTUAL BOXのインストール   Virtual boxとは VirtualBox は、使用している PC 上に仮想的な PC を作成し、別の OS をインストール・実行できるフリーの PC 仮想化ソフトです。 WINDOWSマシンしかもっていなくても、仮想化ソフトを利用してLINUXやMAC OSを動かすことができます。   インストール作業    […続きを読む]

Continue reading …

【cakePHP2】Controllerの変数をViewに引き渡す

メモ ControllerからView(表示用テンプレート)にデータを渡すには、Controller::set(string $var, mixed $value)関数を使用。 データはどこに格納されたのか調べてみると$this->viewVarsに連想配列で格納されていた。 Viewでフォームヘルパーを使用する場合は、Controllerでデータベースより取得した配列データを$this->Dataに設定して使用する。       スクリプト 課題       まとめ       関連記事       参考  

Continue reading …

【jQuery】スティッキーメニュー実装してみたメモ

top 技術 アグリ IoTデータ ← 左のscreentop情報が800を超えたらpositionをfixedにする stickey.kit(jQueryプラグイン)で画面上部で文字を固定してみた         概要   jQueryでスティッキーヘッダを実装しました       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用 jQueryプラグイン stickey.kit     javascriptで要素のposition属性を操作する     スクロールのタイミングでタグ要素の位置を判断してcssのposition属性を変更する。   $(window).scroll(function() { $(“#scrcnt”).text($(this).scrollTop()); if ($(this).scrollTop() > 850){ //表示する位置を固定する $(‘#menu ul’).css({“background”:”none”,”position”:”fixed”,”top”:”30px”[…続きを読む]

Continue reading …

【json】phpで作成した日本語を含むjsonデータをpythonで参照するメモ

        概要   phpで作成したjsonデータをpythonで参照しようとしたら日本語エンコードではまってしまったのでメモ       環境         jsonエンコード(php)     php配列変数をjsonデータ文字列に変換します。     オプション   第二引数にオプションを設定できる     見やすくなるように整形する   JSON_PRETTY_PRINT   日本語をエスケープコードにしない   JSON_UNESCAPED_UNICODE   スラッシュはエスケープしない   JSON_UNESCAPED_SLASHES             jsonデコード(python)     jsonデータ文字列をpythonオブジェクトに変換する。第二引数に文字エンコーディングを指定できる。      […続きを読む]

Continue reading …

【WordPress】phpスクリプトを記述できるショートコードを作ってみた

      概要   投稿ページや固定ページでphpスクリプトを直接書くことができるショートコードを作ってみました。       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用     ショートコードとは   ショートコードとは投稿ページや固定ページでテキストを装飾するための機能です。HTMLのタグと同様の使い方でさまざまな動作を短いコードで表現することができます。 ショートコードは一般的に[xxxxxx]というように各括弧で囲まれた記述の仕方をします。WordPressを触っている人なら見おぼえがあると思います。     このショートコードには、自己完結型ショートコードと囲み型ショートコードの二つの使い方があります。   自己完結型コードとは、[xxxxxx]で完結します。   [garally]   一方、囲み型ショートコードは、開始タグと終了タグがあり、[xxxxxx]コンテンツ[/xxxxxx]のようにコンテンツをタグで囲みます。   [strong]コンテンツ[/strong]   どちらも属性を設定することが可能です。属性を設定する場合は、タグの中に[xxxxxx a=111 b=222]のように記述します。   WordPressのショートコードAPIは自己完結型ショートコードと囲み型ショートコードの両方をサポートしています。 詳しい説明は WordPress Codex ショートコードAPI[…続きを読む]

Continue reading …

【WordPress】jQueryプラグインFlotを使って投稿ページにグラフを表示してみた

        概要   Flotは、とても豊富な機能を備えたjQueryグラフ描画プラグインです。WordPressに読み込めば簡単にグラフを描画できます。WordPressにFlotプラグインを読み込み、固定ページ内に折れ線グラフを表示してみました。       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用 jQueryプラグイン FLOT ver0.83     jQueryプラグインの読み込み     wp_enqueue_scriptsアクションフックのタイミングで、wp_enqueue_script関数でスクリプトの登録を行います。   function my_deregister_script() { if (!is_admin()) { // グラフ描画jQueryを読み込む。 wp_enqueue_script(‘flot’,’https://cdn.jsdelivr.net/jquery.flot/0.8.3/jquery.flot.js’,array(‘jquery’),’0.8.3′); wp_enqueue_script(‘flot.time’,’https://cdn.jsdelivr.net/jquery.flot/0.8.3/jquery.flot.time.min.js’,array(‘jquery’),’0.8.3′); wp_enqueue_script(‘flot.selection’,’https://cdn.jsdelivr.net/jquery.flot/0.8.3/jquery.flot.selection.min.js’,array(‘jquery’),’0.8.3′); } } add_action(‘wp_enqueue_scripts’,’my_deregister_script’,100);    […続きを読む]

Continue reading …

【WordPress】WPに同梱されているjQueryを投稿ページで使用する

      概要   ウィキペディアによるとJqueryは次のように説明されています。     一言でいうとJqueryとは複雑なJavascriptを記述することなく、簡単なコードでJavascriptを実行できる、ライブラリってことですね。WordPressでは管理画面などでjQueryが使用されていますので、わざわざjQueryを読み込むためのコードを追加する必要はありません。       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用       WP同梱のjQueryを使用する方法   WordPressではjQueryのほかにもprototype.jsなどのJavaScript ライブラリが使用されているため、WordpressのjQueryには他のライブラリと競合しないように.noConflict() コマンドが追加されています。   そのため、jQueryで慣用的に使用されている$関数が使用できなくなっています。     一番簡単な解決策は、「$」を「jQuery」にすべて変えてしまうことです。   しかし、過去のjQueryコードを使用したい場合や$関数をそのまま使用したいといった場合は、jQuery関数でカプセル化する方法があります。   jQuery(document).ready( function( $ ) {   //ここに$関数を使用したjQueryコードを書く });  […続きを読む]

Continue reading …

【javascript】canvasでシンプルなアナログ時計を描いてみた

    概要   html5のcanvasでアナログ時計の簡単なデモプログラムを書いてみました。       環境   IDCFクラウド環境 サーバー (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用       WordPressでjavascriptを動かす方法     Javascriptのプログラムをどこにどうやって設置するか方法はいろいろあると思いますが、ここでは一番簡単な方法でjavascriptを動かしてみます。   新規に記事または個別ページを作成して、HTMLが記述できる「テキスト」で以下のコードを記述します。   <div> <script type=”text/javascript”> //ここにjavascriptのコードを記述する </script> </div>   javascriptは上記コメント箇所にコードを記述します。 以上です   ※他にも、プラグインを使用したり、カスタムフィールドを使用したり、さまざまな方法があります。       スクリプト   アナログ時計の描画は、HTML5のCanvas APIを利用して、素のjavascriptで書いています。[…続きを読む]

Continue reading …

【WordPress】WP-CLIを使用してスマートにWordPressデータを扱う

      概要   以前このサイトでWordPressのデータベースを直接のぞいて不要なデータを削除したり別のサーバーに必要なデータを転送したりしたときのメモを残していました。 WordPressのアーキテクチャを理解するのによい勉強になったのですが、WPのデータを扱うのにいちいちSQLを書くのもあれなので、なにかいいツールはないかといろいろさがしていましたが、灯台下暗しでした。 WP-CLIはWordPressをコマンドラインで管理するためのツールです。これでやりたいことが簡単にできそうです。       環境   IDCFクラウド環境 サーバー  (仮想マシン・ハードウェア専有マシン) S1 プラン メモリ1G ボリューム(ディスク) 基本 15GB オブジェクトストレージサービス 50GB WordPressは仮想マシンKUSANAGI環境で使用     ローカル環境にインストール ローカルにWP-CLIがインストールされていない場合は、次の方法でインストールします。   WP-CLIファイルをダウンロードします curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar パスを通します php wp-cli.phar –info chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp     WP-CLIコマンド   GUIで行うことは基本的にほぼ網羅しているみたいです。データベースを直接いじらないとできなかったこともWP-CLIでは簡単にできるようですね。  […続きを読む]

Continue reading …

【linux】rsyncでリモートマシンに高速バックアップする

      概要   リモートマシンへバックアップするときは、ファイル転送コマンドscpを使っていましたが、いろいろrsyncが便利そうなので調べてみました。     環境       rsyncコマンドとは   ウィキペディアによるとrsyncは次のように定義されています。 rsync は、UNIXシステムにおいて、差分符号化を使ってデータ転送量を最小化し、遠隔地間のファイルやディレクトリの同期を行うアプリケーションソフトウェアである。類似のプログラムやプロトコルにはない rsync 独自の特徴として、ミラーサイトとの転送が双方向に高々1回で済む点がある。rsync はディレクトリ内容を表示し、ディレクトリやファイルをコピーできる。オプションでデータ圧縮や再帰も指定可能   scpコマンドのファイル転送機能をサポートする上にディレクトリ間のファイルを高速で同期するため、バックアップにはうってつけのコマンドです。       rsyncコマンドオプション       Rsyncコマンドは、このサイトでかなり詳しく説明されています。       このサイトでは具体的に例を挙げて説明してくれています。   rsyncコマンドで覚えておきたい使い方10個         まとめ   これからリモートサーバーへのバックアップもrsyncを使えば楽になりそうです。       関連記事      […続きを読む]

Continue reading …

【WPF】WriteableBitmap クラスでbitmapイメージを操作する

      概要   WPFはbitmapクラスから派生したさまざまなクラスがありますが、WriteableBitmapクラスを使用するとWindowsながら画素を直接操作するという低レベルプログラミングが可能になります。 WriteableBitmapクラスを使って画面をピクセル単位に操作してみました。       環境   Microsoft Visual Studio 2015 + WPF + VB       WriteableBitmapクラス     以下のプロパティまたはメソッドを使用しました。   BackBuffer 画面に対応するバッファのポインタを取得する   BackBufferStride 画面一行のバッファサイズを取得する   Lock 画面をロックする(バッファを編集中)   Unlock 画面をアンロックする(バッファ編集を終了)   AddDirtyRect 画面の更新対象領域を指定する(指定された領域のみ更新される)     ※コピー&ペーストはbitmapsourceクラス(親クラス)のCopyPixelsとWritePixcelsというメソッドを利用しています。画面のビットマップイメージデータを指定のバッファへのコピーしたりバッファのビットマップイメージデータを画面に出力できます。       サンプル  […続きを読む]

Continue reading …