diff --git a/gracedb/ligoauth/migrations/0011_update_virgo_detchar_cert.py b/gracedb/ligoauth/migrations/0011_update_virgo_detchar_cert.py
new file mode 100644
index 0000000000000000000000000000000000000000..9ac5a1e6c9b5d74d5a8539a3012945f46a6715fd
--- /dev/null
+++ b/gracedb/ligoauth/migrations/0011_update_virgo_detchar_cert.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.16 on 2018-10-01 16:50
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+ACCOUNT = {
+    'username': 'virgo_detchar',
+    'old_cert': '/DC=org/DC=ligo/O=LIGO/OU=Services/CN=Virgodetchar/lscgw.virgo.infn.it',
+    'new_cert': '/DC=org/DC=ligo/O=LIGO/OU=Services/CN=virgodetchar/virgo.infn.it',
+}
+
+def update_certs(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+
+    # Get user
+    user = LocalUser.objects.get(username=ACCOUNT['username'])
+
+    # Delete old certificate
+    old_cert = X509Cert.objects.get(subject=ACCOUNT['old_cert'])
+    old_cert.delete()
+
+    # Create new cert and associate with user
+    new_cert = X509Cert.objects.create(subject=ACCOUNT['new_cert'])
+    user.x509cert_set.add(new_cert)
+
+
+def revert_certs(apps, schema_editor):
+    LocalUser = apps.get_model('ligoauth', 'LocalUser')
+    X509Cert = apps.get_model('ligoauth', 'X509Cert')
+
+    # Get user
+    user = LocalUser.objects.get(username=ACCOUNT['username'])
+
+    # Delete new certificate
+    new_cert = X509Cert.objects.get(subject=ACCOUNT['new_cert'])
+    new_cert.delete()
+
+    # Create new cert and associate with user
+    old_cert = X509Cert.objects.create(subject=ACCOUNT['old_cert'])
+    user.x509cert_set.add(old_cert)
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0010_update_pycbc_cert'),
+    ]
+
+    operations = [
+        migrations.RunPython(update_certs, revert_certs),
+    ]