diff --git a/gracedb/ligoauth/migrations/0040_x509cert_unique_subject.py b/gracedb/ligoauth/migrations/0040_x509cert_unique_subject.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff0e7762de0c9e60f6d7bfaae7ee337f748a8e82
--- /dev/null
+++ b/gracedb/ligoauth/migrations/0040_x509cert_unique_subject.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-06-03 17:24
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ligoauth', '0039_delete_alternateemail_model'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='x509cert',
+            name='subject',
+            field=models.CharField(max_length=255, unique=True),
+        ),
+    ]
diff --git a/gracedb/ligoauth/models.py b/gracedb/ligoauth/models.py
index 42968ab381c48f2fad752cb24bcc4613c6af626f..1a5685448ede578ed0dffe7a4408f68f20fc42d5 100644
--- a/gracedb/ligoauth/models.py
+++ b/gracedb/ligoauth/models.py
@@ -25,7 +25,7 @@ class RobotUser(User):
 
 class X509Cert(models.Model):
     """Model for storing X.509 certificate subjects for API access"""
-    subject = models.CharField(max_length=300)
+    subject = models.CharField(max_length=255, unique=True, null=False)
     users = models.ManyToManyField(User)