[Apache2.2]Windows上SSL/TLS(HTTPS)化する方法
目標
Windows Server2016上のApache2.2をHTTPS通信できるようにする
構築環境
- Window Server 2016
- Apache2.2.34 win32 VC10
- サーバ証明書
server.crt
- CA証明書
ca.crt
これは、自己署名(オレオレ)証明書の場合はない - サーバ秘密鍵
server.key
手順
- 証明書類を配置する
$ mv ./server.crt C:/Apache2/conf/ssl-cert/server.crt $ mv ./server.key C:/Apache2/ssl-key/server.key $ mv ./ca.crt C:/Apache2/conf/ssl-cert/ca.crt
C:/Apache2/conf/httpd.conf
の編集
---122行目あたり--- #LoadModule ssl_module modules/mod_ssl.so ↓コメントアウトを解除 LoadModule ssl_module modules/mod_ssl.so ---493行目あたり--- #Include conf/extra/httpd-ssl.conf ↓コメントアウトを解除 Include conf/extra/httpd-ssl.conf
C:/Apache2/conf/extra/httpd-ssl.conf
の編集
---134行目あたり--- SSLCertificateFile "c:/Apache2/conf/server.crt" ↓ SSLCertificateFile "c:/Apache2/conf/ssl-cert/server.crt" ---144行目あたり--- SSLCertificateKeyFile "c:/Apache2/conf/server.key" ↓ SSLCertificateKeyFile "c:/Apache2/conf/ssl-key/server.key" ---155行目あたり--- #SSLCertificateChainFile "c:/Apache2/conf/server-ca.crt" ↓ SSLCertificateChainFile "c:/Apache2/conf/ssl-cert/ca.crt"
- Apache2.2の再起動
net stop Apache2.2 net start Apache2.2
[OpenSSL]自己署名証明書を生成する方法
目標
サーバ証明書(公開鍵)www.example.jp.csr
とサーバ秘密鍵www.example.jp.key
を生成する
構築環境
手順
# openssl genrsa > www.example.jp.key Generating RSA private key, 2048 bit long modulus ..............................................................+++ ..+++ e is 65537 (0x10001)
- コンソールでCSRファイルを生成
# openssl req -new -key www.example.jp.key > www.example.jp.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:jp State or Province Name (full name) [Some-State]:kyoto Locality Name (eg, city) []:kyoto Organization Name (eg, company) [Internet Widgits Pty Ltd]:Company Organizational Unit Name (eg, section) []:Department Common Name (e.g. server FQDN or YOUR name) []:www.example.jp Email Address []:example@example.jp Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
まずCSRファイルってなんやねんってことですが、認証局(CA)に対して、SSLサーバ証明書への証明を申請する内容。
CSRファイルには「公開鍵」とそれの所有者情報と申請者が対応する秘密鍵を持っているのを示す申請者の署名が書いている。
(引用元CSRファイルとは何ですか? | SSLサーバ証明書のクロストラスト)
# openssl x509 -req -signkey www.example.jp.key < www.example.jp.csr > www.example.jp.crt Signature ok subject=/C=jp/ST=kyoto/L=kyoto/O=Company/OU=Department/CN=www.example.jp/emailAddress=example@example.jp Getting Private key
[GitLab]HTTPS(SSL/TLS)にする方法
仕事で、オンプレGitLabを運用していましたが、HTTPS化した方がいいねってことになって、ワイルドカード証明書でHTTPS化したので復習もかねてアウトプットします
目標
CentOS7上で運用しているGitLabをHTTPS(SSL/TLS)で通信できるようにする
構築環境
- CentOS7(gitlab.example.co.jp)
- GitLab 12.2.5
- ワイルドカード証明書(*.example.co.jp)
ファイル名 | 形式(エンコーディング) | 説明 |
---|---|---|
ca.crt | Base64(.pem) | 中間CA証明書 |
certs.crt | Base64 | GitLabサーバ証明書 |
certs.key | Base64 | GitLabサーバのRSA秘密鍵パスフェーズなし |
手順
$ mkdir /etc/gitlab/ssl/ $ cp ./certs.crt /etc/gitlab/ssl/gitlab.example.co.jp.crt $ cat ./ca.crt >> /etc/gitlab/ssl/gitlab.example.co.jp.crt $ cp ./certs.key /etc/gitlab/ssl/gitlab.example.co.jp.key $ cd /etc/gitlab/ssl/ $ chown root gitlab.example.co.jp.crt $ chown root gitlab.example.co.jp.key $ chmod 404 gitlab.example.co.jp.crt $ chmod 400 gitlab.example.co.jp.key
/etc/gitlab/gitlab.rb
を編集 10行目あたり
## GitLab URL external_url 'http://localhost' ↓ external_url 'https://gitlab.example.co.jp'
1000行目あたり
NGINXのセクション内のコメントアウトを解除します。
################################################################################ ## GitLab NGINX ##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html ################################################################################ # nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt" # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key" ↓ nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"
- GitLabの再構成および再起動
$ gitlab-ctl reconfigure $ gitlab-ctl restart
/var/log/gitlab/nginx/error.log
になにもでてなければいけてるはず
[Windows]MySQL5.5から5.6にアップグレードする方法
目標
Windows Server 2016の上で運用しているMySQL5.5(zip版)からMySQL5.6にアップグレードする
構築環境
アップグレード前の状態
C:/MySQL5.5.62/data/
内のwebappフォルダが実際に作成したデータベースで、それ以外のファイル・フォルダはシステムが使ってるものです
テーブル名 | ストレージエンジン |
---|---|
user | MyISAM |
admin | InnoDB |
手順
- MySQL起動している人は落とす
- サービス登録している人は、コマンドプロンプトとかに管理者権限で
sc delete MySQL5.5.62
を入力 - 画像のように配置する
C:/MySQL5.6.45/data/
内にC:/MySQL5.5.62/data/
内のperformance_schema
とtest
以外をコピーして上書きする- コマンドプロンプトで
C:/MySQL5.6.45/bin/mysqld.exe --console
入力で起動させ、エラーがないか確認 - アップグレードしたので、データベースやテーブルの整合性チェックとかのために、コマンドプロンプトで
C:/MySQL5.6.45/bin/mysql_upgrade.exe -u root -p
入力して実行 - コマンドプロンプトで
C:/MySQL5.6.45/bin/mysql.exe -u root -p
入力でログインして、コピーしたデータベースがみれるかチェック - 手順5のコンソールで
Ctrl
+C
でMySQL5.6.45を停止させ、C:/MySQL5.6.45/bin/mysqld.exe --install MySQL5.6.45
と入力し、サービス一覧で追加させていることを確認する
詳しくはここら辺みるといいかも
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.3.7 Windows 上の MySQL をアップグレードする
MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.11.1.3 MySQL 5.5 から 5.6 へのアップグレード
自宅サーバのPSUが壊れたので交換した話
色々な検証をしている自宅サーバのPSU(Power Supply Unit)ようするに電源ユニットがヘタって来たので、交換した話です。
これが自宅サーバです。HPのモニタの下のやつです。大きさはラック4Uで耳もつけれるケースで、珍しく横置きケースです
なんで、こんな経緯に至ったのかというと、このサーバの中身のマザボとかHDDとか電源ユニットとかすべて、今使ってる自作PCの前に使ってた自作PCのパーツでリビルドしてます。 ちなみにスペックこんな感じ
項目 | パーツ |
---|---|
CPU | Intel Core i7-2700K |
メモリ | DDR3 4GBx2枚 2GBx2枚 |
M/B | GIGABYTE GA-Z77X-UP4-TH |
HDD | Seagate 2TB |
PSU | 玄人志向 KRPW-G2-850W/90+ |
前の自作PCは2013年ぐらいに作ったもんだから、だいぶ古くなってる状態
マザボと電源は作ってから1年後ぐらいに新しいのと交換してますが・・・
そんなこともあり、高負荷をかけるとkernel-power41でPCが落ちたので、今年の3月に新しくPCを組んだわけです。
前のPCのパーツを利用してVM Ware vSpehereとかいれて検証用の自宅サーバにしていたのですが、高負荷にならなくても電源がおちるようになってきました
なので、原因はすぐわかったので、AmazonでCorsairの電源をぽちり、速達便で届けてもらいました
Corsair CX450M 80PLUS BRONZE認定 PC電源ユニット PS626 CP-9020101-JP
- 出版社/メーカー: Corsair
- 発売日: 2016/04/02
- メディア: Personal Computers
- この商品を含むブログを見る
交換作業
実際に電源ユニットが届いたので、作業開始!
まず、トップパネルをあけた状態がこれ ケーブルとか抜いちゃってるけど・・・
んで1,2分で交換したのがこんな感じ
電源変えただけなので、そんな見た目かわんないですね
これで起動できるので、色々検証して次の記事を書こうと思います
[Windows]コマンドからファイル共有を操作
前記事のコマンドでユーザ・グループの操作に引き続き、仕事で使うことがあったのでアウトプットします
#共有フォルダ一覧 $net share #Command Prompt $Get-SmbShare #PowerShell #共有フォルダ詳細 $Get-SmbShareAccess [共有フォルダ名] #PS #共有フォルダを作成 $net share [共有フォルダ名] [パス] /add #cmd $New-SmbShare -Name [共有フォルダ名] -Path [パス] -FullAccess [ユーザ名] #PS #共有フォルダ削除 #net share [共有フォルダ名] /delete #cmd
使いどころが少ないとは思いますが、共有フォルダ一覧をファイルに書き出す場合は以下になります
Get-WmiObject -class win32_share | Select-Object Name,Path,Description | Export-Csv -Path [ファイル名] -Encoding UTF8 -NoTypeInformation
ファイル共有に関しては、まだまだ書くことがあるので、その都度追記していきます
[Windows]コマンドからユーザ・グループを追加・変更・削除する方法
仕事でファイルサーバのリプレースでWindows Server2016にする機会があり、windowsのコマンドを学んだので、忘れても見返せるようアウトプット
- ローカルユーザ
#一覧表示 $net user #Command Prompt $Get-LocalUser #PowerShell #ユーザ追加 $net user [ユーザ名] [パスワード] /add #cmd $New-LocalUser [ユーザ名] [パスワード] #PS #ユーザ削除 $net user [ユーザ名] /delete #cmd $Remove-LocalUser [ユーザ名] #PS
- ローカルグループ
#一覧表示 $net localgroup #cmd $Get-Localgroup #PS #グループの詳細表示(所属ユーザも) $net localgroup [グループ名] #cmd $Get-LocalGroupMember [グループ名] #PS #グループ作成 $net localgroup [グループ名] /comment:"グループ説明" /add #cmd $New-LocalGroup -Name [グループ名] -Comment "グループ説明" #PS #グループ名変更 $Rename-LocalGroup [グループ名] #グループにユーザを追加・削除 $net localgroup [グループ名] [ユーザ名1] [ユーザ名2] /add #cmd 追加 $net localgroup [グループ名] [ユーザ名1] [ユーザ名2] /delete #cmd 削除 $Add-LocalGroupMember [グループ名] [ユーザ名1] [ユーザ名2] #PS 追加 $Remove-LocalGroupMember [グループ名] [ユーザ名1] [ユーザ名2] #PS 削除 #グループ削除 $net localgroup [グループ名] /delete #cmd $Remove-LocalGroup [グループ名] #PS
グループ作成とグループにユーザ追加削除は、ユーザ名が入っているか否かしか違いがなく、間違えないように注意!
グループ一覧をcsvで書き出す際はこんな感じ
Get-WmiObject -class win32_Group | Select-Object Domain,Name,Caption,SID | Export-Csv -Path [ファイル名] -Encoding UTF8 -NoTypeInformation
Windowsファイルサーバをせっかく触ったので、次回、ファイル・ディレクトリのアクセス権を操作するためのコマンドを記事にします