サーバー関連の設定メモITエンジニアの四方山話PHP、Perl、html、xmlの開発メモ、その他色々書いています。使っているレンタルサーバー会社から、『SSHのDSA(ssh-dss)公開鍵による認証を廃止する』と連絡がありました。TeraTermから接続する時SSHで接続しています。鍵を使って接続していますが、どの方式だったかな。お恥ずかしい話ですが、滅多に使わないので気にしたことがなかったです。公開鍵ファイルへのパスで鍵方式が調べられるそうです。TeraTermでサーバーへ接続して調べました。RSA方式でした(後でファイル名を見たらRSAと入っていました)。このまま使えるのだと思いますが、ちょうど手もすいていたので、一番安全なed25519方式へ変更してみました。サーバーで鍵を作成するようです。ed25519なのだとか。SSH接続にて、ed25519の公開鍵+パスワードの二段階認証を行うの解説がわかりやすかったです。詳しくは上のサイトをご覧ください。秘密鍵をPCなどクライアントにダウンロードしてサーバーから削除、ターミナルから接続する時、パスフレーズと秘密鍵を使って接続、ということになります。普通はサーバーで鍵を作るのだと思いますが、TeraTermで作成することにしました。公開鍵をサーバーの.sshにファイル名authorized_keysでアップロードしてパーミッションを600に設定、ターミナルから接続する時、クライアントに残した秘密鍵とパスフレーズを使って接続、になります。ターミナルソフトから接続するアカウントが複数あるので、鍵も複数作るべきなのでしょうけど、接続するのは私だけですし、同じ鍵で接続できる方が便利なのです。ターミナルを使うことは滅多にないので、あれこれやっているとわけがわからなくなってしまいます。サーバーで鍵を作ると、アカウントごとに違う鍵が作成されますが、TeraTermで作成すると共通にすることができるのです。これでほとんど今まで通りに使えます。数日前から行っていたサイトの新環境への移行が完了しました。昨日、後は新旧を切り替えるだけと書きましたが、今日早くに切り替えました。言っても見た目はほぼ変わりません。URLがhttpからhttpsへ変わったくらいです。行なったのはSSL化、ページの文字コードをUTF-8へ、html5へ、PHP7へバージョンアップとそれに伴うMySQL関係のソース書き換え、PostgreSQLの移行(バージョンアップと文字コード変更)、です。大変だったのは・・・ううんなんだろう。テストデータの用意、ですね。動いているように見えても、どこかでエラーが起きていてはいけないので、テストサイトでテストをするのですが、そのデータを用意するのが大変でした。本番のデータでテストするわけにもいきませんので、でもきちんとデータを作らないと動かない箇所が沢山あるのです。いうとき、色々な所を自動化していると大変です。自動にしているソースを見直すのがではなく、自動にすることでデータの動きを自分自身も忘れてしまっているので、思い出して、テストデータを作るのが大変でした。「やった~、終わった!!」ではなく「うん、きっとこれで大丈夫。」という状況なので、今一晴れ晴れしません。ツールのソースの改修に戻ります。先日からやっているサイトのSSL化、ページの文字コードをUTF-8へ、html5へ、PHP7へバージョンアップ、PostgreSQLの移行(バージョンアップと文字コード変更)、とほぼ全ての環境が変わってしまう移行がほぼ終わりました。変わらなかったのはMySQLだけです。PHPのバージョンアップに伴い、MySQL関係がかなり変わったので、MySQLまで変わった気分です。テストサイトでの動作確認は終了し、後は本番サイトとテストサイトとを切り替えます。切り替え前に再度データの同期を取らなくてはいけません。サイトをSSL化したので、ついでにPOSTしている部分をSSLに書き換えました。ツールが売れたら、自分自身にもメール送信し、特定のメールボックスで受信します。そのメールボックスにメールが届くとPHPを起動し、処理を行います。PHPの起動は【.forward】で行います。私が利用しているレンタルサーバーの場合、SSLを利用するには拡張モジュールを【php.ini】に記述しておかなければいけません。しても読み込んでくれなかったのです。私の勘違いで読み込まなかったのですが。分かってしまえばなんでもないところで、つまづきました。何を勘違いしていたかは恥ずかしいので内緒です。/home/xxx/yyy/run.php"【/usr/local/bin/php】はPHPのパス、サーバーによってはPHPのバージョンを指定できます。【/home/xxx/.php/】ディレクトリ下の【php.ini】を読み込んで、【/home/xxx/yyy/run.php】を実行します。私も初めは間違えていましたが、【php.ini】を指定している部分【-c/home/xxx/.php/php.ini】の【-c】の後ろにスペースは入りません。説明を読んでも勘違いが解けず行き詰まってコーヒーを入れていたら、突然ポワッとcronの設定が目の前に浮かんできて解決できました。特定のURLを除外してリダイレクト2018年10月20日3日間片頭痛で伸びていました。今回は薬があまり効かず、しんどかった。今日はやっとまともに活動できました。片頭痛で吐き気がしている間は、指一本でも動かすと強烈な吐き気にくるので、ピクリとも動けません。そのせいで無理な姿勢で寝ていたのでしょうか、左腕がピクピクし始めてしまい、治まる気配がありません。WebサイトのSSL化で、何か忘れている気がすると書きました。忘れていたわけではないのですが、テスト漏れがありました。テストした気になっていました。ご迷惑をおかけしてしまったユーザー様、申し訳ございません。これからまだツールのソースを変更するので(サイトのSSLはそのままですが)、【.htaccess】のRewriteRuleを書き換えました。特定のURLを除外して、httpsに301リダイレクトします。アクセスはそのままhttpで、それ以外はhttpsへ301リダイレクトします。【.htaccess】は【engineer.ns-it.net】の下へアップロードです。!(.*/abcdefg.php$)でもOKを確認しました。コメントTop↑サーバーWebサイトのSSL化2018年10月16日このブログの文字コードをUTF-8に移行できたので、今日は【ネットビジネス便利ツール】をUTF-8に移行予定だったのですが、急遽予定を変更してSSL化を行いました。Encryptに対応しているので利用することにしました。メジャーなレンタルサーバーは対応(設定や更新を自動化)していると思うので、興味のある方は調べてみてください。【ネットビジネス便利ツール】はすんなりできました。このブログはサブドメインで利用しています。Encryptのワイルドカードにはまだ対応していないので、サブドメインごとにSSLを設定することで解決できました。作業自体は簡単でした。これで【ネットビジネス便利ツール】とこのブログをSSL化できました。このブログの他にもサブドメインで運用しているサイトがあるのですが、閉鎖も含めてもう少し考えます。ページ内にhttpでリンクを貼っている箇所を修正、PayPal決済関係でhttpを利用している箇所をhttpsに変更しました。[R=301,L]を書いて、httpでのアクセスをhttpsへリダイレクトと共に、検索サイトのページ情報を引き継がせます。何か忘れている気もするけど、気がついた時また作業します。Encryptとレンタルサーバーに感謝。使っているレンタルサーバーが、メンテナンスを行ったようです。今回のメンテナンスは、OSのバージョンアップを行うとのこと、多分何かあるだろうなとは思っていました。200通以上届いていました。